访问字符串中指定位置的字符的方法
charAt():返回指定位置的字符charCodeAt():返回指定位置的字符的字符编码- 通过方括号加字符索引。
注意:IE7以及更早的版本不支持var str = 'abcd1234' console.log(str.charAt(2)) // 'c' console.log(str.charCodeAt(2)) // 99 console.log(str[2]) // 'c'
拼接字符串的方法
concat():专门用来拼接字符串的方法,该方法可以接受任意多个参数,返回拼接得到的新字符串- 通过加号操作符'+'
var str = 'ab' console.log(str.concat('123')) // 'ab123' console.log(str.concat('123', 'cd')) // 'ab123cd' console.log(str + '123') // 'ab123' console.log(str + '123' + 'cd') // 'ab123cd'
截取字符串的方法
slice()和substring(),两个方法的传参都是索引值。注意:含头不含尾substr():传参中的第一个参数和slice()方法一样,而第二个参数是要截取字符串的个数- 传参中有负数的情况
slice():传入的负值与字符串的长度相加,传参不合法(第二个参数大于第一个参数),返回空字符串substring():将所有负值参数都转换为0,传参不合法(第二个参数大于第一个参数),会自动替换两个参数的位置substr():将第一个传入的负值与字符串的长度相加,而第二个负值转换为0
// Base var str = 'bcd1234efg' console.log(str.slice(0,3)); // 'bcd' 参数为起始位置和结束位置 console.log(str.slice(-3,-1)); // 'ef' 当出现负值时,两个参数均为负值和字符串长度相加 console.log(str.slice(-1,-3)); // '' 第二个参数小于第一个参数时,返回空 console.log(str.substr(2,2)); // 'd1' 第一个参数为起始位置,第二个参数为字符串的个数 console.log(str.substr(-3,-2)); // '' 当参数为负数时,第一个参数加上字符串的长度,第二个参数变为0 console.log(str.substring(3,5)); // '12' 参数为起始位置和结束位置 console.log(str.substring(-3,-2)); // '' 当参数为负数时,两个参数都变成0 console.log(str.substring(3,-3)); // 'bcd' 当第二个参数小于第一个参数时,交换位置 // More var str1 = 'abcdefghijklmn' var len = str1.length // 14 console.log(str.slice(8, -9)) // 传参不合法,返回空字符串 '' // 上述代码等同于 (-9) + 14 = 5 console.log(str.slice(8, 5)) // 传参不合法,返回空字符串 '' console.log(str.substring(8, -9)) // 'abcdefgh' // 上述代码等同于 console.log(str.substring(8, 0)) // 'abcdefgh' 传参不合法,替换两参数的位置 // 上述代码再次等同于 console.log(str.substring(0, 8)) // 'abcdefgh'
获取字符串中特定字符的位置的方法
indexOf()和lastIndexOf()与数组的相似注意- 前者从前往后搜索,后者从后往前搜索
- 第二个参数指定从字符串的哪个位置开始搜索
字符串大小写转换
toLowerCase()和toUpperCase()是两个经典的方法toLocaleLowerCase()和toLocaleUpperCase()是针对特定地区的
字符串模式匹配
-
match()- 接受一个正则作为参数,用来匹配一个字符串,它的输出结果在不是全局匹配的情况下和
exec方法的结果一致即一个数组并带有额外的属性,如果采用全局匹配,则不返回任何和其被匹配字符串相关的信息,只返回匹配的结果。 非全局匹配var reg2=/(\w)s(\w)/ var str2="ws1estqsa" var result=str2.match(reg2) console.log(result) // 结果如下,此时的str2.match(reg2) 和 reg2.exec(str2) 的结果是一样的

全局匹配var reg2=/(\w)s(\w)/g var str2="ws1estqsa" var result=str2.match(reg2) console.log(result) // 结果如下,此时的str2.match(reg2)是所有结果组成的数组,而 reg2.exec(str2)是匹配到的n个数组,其中每个数组包括的详细信息和非全局匹配的信息一样

- 接受一个正则作为参数,用来匹配一个字符串,它的输出结果在不是全局匹配的情况下和
-
search()- 用来查找第一次匹配的子字符串的位置,如果找到就返回一个number类型的index值,否则返回-1,它返回的只是第一次匹配的位置。它接受一个正则或者子字符串为参数
var str="hellO world" console.log(str.search('o')) // 7 console.log(str.search(/o/g)) // 7 console.log(str.search(/o/gi)) // 4
- 用来查找第一次匹配的子字符串的位置,如果找到就返回一个number类型的index值,否则返回-1,它返回的只是第一次匹配的位置。它接受一个正则或者子字符串为参数
-
replace()- 用来将字符串中的某些子串替换为需要的内容,接受两个参数,第一个参数可以为正则或者子字符串,表示匹配需要被替换的内容,第二个参数为被替换的新的子字符串。如果声明为全局匹配则会替换所有结果,否则只替换第一个匹配到的结果
var str='hello world,hello test' console.log(str.replace('hello', 'hi')) // hi world,hello test console.log(str.replace(/hello/, 'hi')) // hi world,hello test console.log(str.replace(/hello/g,'hi')) // hi world,hi test
- 用来将字符串中的某些子串替换为需要的内容,接受两个参数,第一个参数可以为正则或者子字符串,表示匹配需要被替换的内容,第二个参数为被替换的新的子字符串。如果声明为全局匹配则会替换所有结果,否则只替换第一个匹配到的结果
-
split()- 用来将一个字符串拆分成一个数组,它接受一个正则或者子字符(串)作为参数,返回一个数组,简单情况下,我们不需要使用正则,只有在字符串拆分规则不统一的情况下才需要使用正则
// Base var str='abcdef' var arr=str.split('') console.log(arr) // [a, b, c ,d, e, f] // More var str='how|old*are you' var arr=str.split(/\||\*|\s+/) console.log(arr) // [how, old, are, you]
- 用来将一个字符串拆分成一个数组,它接受一个正则或者子字符(串)作为参数,返回一个数组,简单情况下,我们不需要使用正则,只有在字符串拆分规则不统一的情况下才需要使用正则