通常情况下,“字符串”可以认为是一类 JavaScript 支持的数据类型,严格意义上,所有字符串格式的数据都是 String 对象。JavaScript 内置了一些常用的用来处理字符串的方法,使用这些方法可以方便地完成对字符串对象的二次处理。

字符串对象的构造函数为String(),因此定义一个字符串不仅可以使用var关键字直接赋值的方法,还可以是:

var str=new String("test");  //本质上和var str="test"没有区别

1、获取字符串长度:String.length

var str="ThisIsATest";
console.log(str.length); //输出11

2、字符串大小写转换:

  • String.toUpperCase():将字符串内所有字符转换为大写字母

  • String.toLowerCase():将字符串内所有字符转换为小写字母

3、截取部分字符串子串:

  • String.substring(start,last)——获取从第start+1个字符到第last个为止的字符串。第一个参数start表示开始截取的索引值(注意:索引值从0开始计数),也就是第start+1个字符开始;第二个参数表示截取到第last个字符(索引为last-1)为止。

  • String.slice(start,last)——含义与substring()方法相同,唯一区别是slice()两个参数可以是负数,表示从字符串末尾开始计数的索引(例如:-2表示倒数第二个字符)

var str="ABCDEFGHIGKLMNOPQ";
console.log(str.substring(0,4)); //返回"ABCD"
console.log(str.substring(10,12)); //返回"KL"
console.log(str.substring(3,3)); //返回空字符串
console.log(str.slice(-4,-2)); //返回"NO"

4、获取单个字符:String.charAt(n)——获取索引值为n的字符(第n+1个字符)

var str="ABCDEFGHIGKLMNOPQ";
console.log(str.charAt(3)); //返回"D"

5、正向查找子串在字符串中出现的位置:String.indexOf("substring", start)——从索引为start+1个)开始,检索 substring 子串首次出现的索引位置。

var str="ABCDEABCDEABCDE";
console.log(str.indexOf("BCD")); //返回1
console.log(str.indexOf("BCD", 2)); //返回6

6、逆序查找子串在字符串中出现的位置:String.lastIndexOf("substring", start)——原理与indexOf()方法类似,不同的是lastIndexOf()是逆序从字符串尾部开始检索,查找到子串最后一次出现的额位置后返回该索引。

7、将字符串分割成数组:String.split(separator,howmany)——第一个参数表示分割字符串使用的标示,第二个参数表示返回的数组的最大长度。

var str="How are you doing today?";
console.log(str.split(" ",3));  //返回["How","are","you"]

8、正则替换和子串替换:String.replace(regex/substring, replacement)

第一个参数为本次替换使用的正则表达式或者直接进行检索替换的子串,第二个参数为替换后的字符串。由于正则表达式在JavaScript中也是一种特殊的“数据”,因此如果第一个参数没有明确指定为正则表达式,而是使用了字符串类型,replace方法不会把字符串转换成通常意义上的“正则表达式”来进行正则匹配替换。

var str="ABCDEFGHIGKLMNOPQ";
console.log(str.replace("CDE","cde")); //返回"ABcdeFGHIGKLMNOPQ"
console.log(str.replace(/C.+E/,"xyz")); //返回"ABxyzFGHIGKLMNOPQ"