JS-字符串

Preview:

---由指定下标获得对应阿斯克码---
// 字符串.charCodeAt(下标)

---由阿斯克码获得对应字符---
// 字符串.fromCharCode(阿斯克码)
---查找位置---
子串第一次出现的位置
// 字符串.indexOf(子串)

子串最后一次出现的位置
// 字符串.lastIndexOf(子串)
---截取字符串---
// 字符串.slice(开始下标,结束下标但不包括)

// 字符串.substr(开始下标,指定长度)

// 字符串.substring(开始下标,结束下标但不包括)
---通过分隔符 字符串转数组---
// 字符串.split(分隔符)
---替换字符串---
// 字符串.replace(原子串,新子串)
---字符串去空白---
// 字符串.trim()
// 字符串.trimLeft()
// 字符串.trimRight()
---字符串转大小写---
// 字符串.toUpperCase()
// 字符串.toLowerCase()

本篇

字符串的比较

比较规则:逐字符比较,字符大小由 阿斯克码[ASCII] 决定:
    1.排在后面的字母更大
    2.小写>大写
    3.字母>数字
汉字也可以进行比较 大小由 unicode码 决定

重要的部分阿斯克码
    数字 0~9:48~57
    大写字母 A~Z:65~90
    小写字母 a~z:97~122


根据指定下标获取对应字符的阿斯克码

//数组名.charCodeAt(下标)

案例:
var str = '98765'
console.log(str.charCodeAt(0))    //57 返回字符9的阿斯克码

根据阿斯克码获取字符

//String.fromCharCode(ASCII)

案例:
console.log(String.fromCharCode(57))    //9 返回阿斯克码57的字符

查找字符、子字符串在大字符串中第一次/最后一次出现的位置

//字符串.indexOf(字符/字符串)
//字符串.lastIndexOf(字符/字符串)

案例:
var str = 'geasdgeth'

console.log(str.indexOf('g')); //0 从前往后开始搜索
console.log(str.indexOf('g', 2)); //5 从下标2开始往后搜索
console.log(str.indexOf('as')); //2 搜索子字符串

console.log(str.indexOf('f')); //-1 没有找到

console.log(str.lastIndexOf('g')); //5 从后往前搜索
console.log(str.lastIndexOf('g', 3)); //0 从下标3开始往前搜索

截取字符串

// 字符串.slice(参1,参2)
//参1指定起始下标 参2指定终止下标 [但结果不包含该下标]

案例:
var str = 'geasdgeth'
console.log(str.slice(2,4))  //as 谨记:从 开始下标 截取到 终止下标-1

console.log(str.slice(2))    //asdgeth 省略参2 默认截取至字符串末尾

console.log(str.slice(-7,-5))    //as 下标可取负值 倒数

console.log(str.slice(3,2))    //开始下标大于终止下标 截取到空
console.log(str.slice(-2,-3))    //开始下标大于终止下标 截取到空
//字符串.substr(参1,参2)
//参1指定起始下标 参2指定截取长度

案例:
var str = 'geasdgeth'
console.log(str.substr(2,2))    //as

console.log(str.substr(2))    //asdgeth    省略参2 默认截取至末尾
console.log(str.substr(2,100))    //asdgrth    指定长度超过字符串长度 也只会截取至字符串末尾
console.log(str.substr(2,100).length)    //7    长度正常

console.log(str.substr(-7,2))    //as    可取负值 倒数

对比slice方法
slice方法 参2为 终止下标
substr方法 参2为 截取长度
// 字符串.substring(参1,参2)
//参1指定起始下标 参2指定终止下标 [但结果不包含该下标]

案例:
var str = 'geasdgeth'
console.log(str.substring(2,4))  //as 谨记:从 开始下标 截取到 终止下标-1

console.log(str.substring(2))    //asdgeth 省略参2 默认截取至字符串末尾

console.log(str.substring(4,2))    //as    开始下标大于终止下标 自动交替 再截取 (4,2)→(2,4)
console.log(str.substring(2,-3))    //ge    参1/参2取负数时 自动将参数替换为0 (2,-3)→(2,0)→(0,2)
console.log(str.substring(-7,-5))    //空    从0到0截取为空

对比slice方法
slice方法 参数取负时 会倒数截取
开始下标 大于 终止下标时 只能返回空

substring方法 参数取负时 会将参数替换为0
开始下标 大于 终止下标时 会自动替换

指定字符 在字符串中 作为分隔符 分割字符串 字符串转数组

//字符串.split(参1,参2)
//参1指定分隔符 参2为可选项 指定保留分割后元素的个数 

案例:
var str = 'Practice makes perfect'
var arr = str.split(' ')
console.log(arr)    //['Practice', 'makes', 'perfect']

var brr = str.split(' ',2)    //保留前两个元素
console.log(brr)    //['Practice', 'makes']

var crr = str.split()    //省略分隔符 默认将 字符串整体 作为一个元素 放入数组中
console.log(crr)    //['Practice makes perfect']    length=1

var drr = str.split('')    //空字符串作为分隔符 使原字符串中每一个字符作为元素 放入数组中
console.log(drr)    //['P', 'r', 'a', 'c', 't', 'i', 'c', 'e', ' ', 'm', 'a', 'k', 'e', 's', ' ', 'p', 'e', 'r', 'f', 'e', 'c', 't']

指定新字符串 替换 子字符串

//字符串.replace(参1,参2)
//参1指定目标子字符串 参2指定替换用的字符串

案例:
var str = 'Practice makes perfect'
var str1 = str.replace('perfect', 'excellent')
console.log(str1)    //Practice makes excellent

var str2 = str.replace('','!')    //参1为空字符串 则将替换用字符添加到字符串的开头
console,log(str2)    //!Practice makes perfect

去除字符串两段空白字符

//字符串.trim()

案例:
var str = '     mid dle     '
console.log('左 ' + str + ' 右')    //左      mid dle      右

var str1 = str.trim()
console.log('左 ' + str1 + ' 右')    //左 mid dle 右

//字符串.trimLrft()
var str2 = str.trimLeft()
console.log('左 ' + str2 + ' 右')    //左 mid dle      右

//字符串.trimRight()
var str3 = str.trimRight()
console.log('左 ' + str3 + ' 右')    //左      mid dle 右

将字符串中的字母转换大小写

//字符串.toUpperCase()    转大写
//字符串.toLowerCase()    转小写

案例:
var str = 'Practice makes perfect'
var str1=str.toUpperCase()
console.log(str1)    //PRACTICE MAKES PERFECT

var str2=str1.toLowerCase()
console.log(str2)    //practice makes perfect
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 229,565评论 6 539
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,115评论 3 423
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 177,577评论 0 382
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,514评论 1 316
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,234评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,621评论 1 326
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,641评论 3 444
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,822评论 0 289
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,380评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,128评论 3 356
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,319评论 1 371
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,879评论 5 362
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,548评论 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,970评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,229评论 1 291
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,048评论 3 397
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,285评论 2 376

推荐阅读更多精彩内容