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