盘点JavaScript字符串方法

191 阅读4分钟

image.png

1.获取字符串长度 length

const str = "hello";
str.length;//5

2.获取字符串指定位置的值 charAt() charCodeAt()

chartAt()方法获取到的是指定位置的字符;

const str = "hello";
str.charAt(1);//输出结果为 e

charCodeAt()获取到指定位置字符的Unicode值;

const str = "abc";
str.charCodeAt(1);//输出结果为98;

3.检索字符串是否包含特定序列 indexOf() lastIndexOf() includes() startsWith() endsWith()

注意这5个方法都对大小写敏感

indexOf():查找某个字符,有则返回第一次匹配到的位置,没有返回-1

该方法有2个参数:

  • searchvalue:必需,规定检索的字符串值
  • fromindex:可选参数,规定字符串检索位置。如省略默认从首字母开始检索
let str = "abcb";
str.indexOf("a");//输出 0
str.indexOf("b"2);//输出 3
str.indexOf("s");//输出-1

lastIndexOf():和indexOf()类似,只是查找顺序不同,indexOf是正序查找,lastIndexOf是倒序查找

let str = "abcabc";
str.lastIndexOf("a");//输出3
str.lastIndexOf("q");//输出-1

includes():用于判断字符串是否包含指定字符串,找到返回true,没找到返回false

str.includes(searchvalue,fromindex);//searchvalue是查找的字符串;fromindex是从哪里开始查找,默认是0
let str = "abcadsac";
str.includes("ca");//true
str.includes("adsss");//false
str.includes("ac",2);//true

startsWith():检测字符串是否以指定的字符串开始。是返回true否则返回false

str.startsWith(searchvalue,fromindex)
var str = "abxcc";
str.startsWith("a");//true
str.startsWith("f");//false

endsWith():检索字符串是否以指定的字符结尾。是则返回true否则返回false

str.endsWith(searchvalue,fromindex)

4.字符串分割成数组split()

split():字符串分割成数组,不会改变原有的字符串。

str.split(separator,limit);
//separator:必需,字符串或是正则表达式,从该参数指定位置分割字符串
//limit:可选,该参数可指定返回数组的最大长度,若不设置,整个字符串都会被分割,不考虑长度
let str = "abcdef";
str.split("d");//输出结果["abc","ef"]
str.split("",3)//输出结果["a","b","c"]
//若separator的值是空字符串,则字符串中的每个字符都会被分割

5.截取字符串 slice() substr() substring()

slice():提取字符串某些部分返回被提取的部分,不改变原字符串

str.slice(starti,endi-1);

starti:必需,截取片段的起始下标。若是负数则从后面开始截取 endi:可选,要截取片段的结尾下标,若未指定,则从starti到字符串结尾。若是负数,则是从字符串尾部开始算起。

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

toLowerCase():把字符串转换为小写

const str = "aBc";
str.toLowerCase();//abc

toUpperCase():把字符串转换为大写

7.连接多个字符串 concat()

concat连接多个子字符串不会改变原有的字符串,还返回2个或多个新的字符串

str.concat(str1,str2,str3...)

虽然concat是用于连接字符串的,但是日常更多的是用+连接字符串,因为更加简便

8.字符串匹配模式 replace() match() search()

replace():字符串中用一些字符替换另一些字符,或是替换一个子字符串。

str.replace(searchvalue,newvalue);
//searchvalue:必需,是要替换的对象
//newvalue:必需,是替换的值;
let str = "abcdefD";
str.replace("d","a");//abcaefD
str.replace(/d/ig,"a");//abcaefa

match():在字符串内检索指定的值,返回指定的值。

str.march(regexp);
//regexp:规定要匹配的正则对象,若该参数不是正则,则需要把他传递给正则的构造函数,将其转化为正则对象。

【注意】:该方法返回存放匹配结果的数组。

const str = "abcdef";
str.match("c");//["c", index: 2, input: "abcdef", groups: undefined]

search():检索字符串中指定的子字符,或检与正则表达式相匹配的子字符串。返回str中第一俄国与正则相匹配的起始位置,没有则返回-1。

str.search(searchvalue);

9.移除字符串末尾的空格 trim() trimStart()

10.获取字符串本身 valueOf() toString()

11.重复一个字符串 repeat()

repeat():返回一个新的字符串,将原字符串重复n次。

"a".repeat(3);//"aaa"
"ban".repeat(2);//"banban"
"c".repeat(0);//""

若参数是小数会向下取整

"a".repeat(2.9);//"aa"

若参数是负数或infinity会报错; 若参数是字符串会先字; 若参数是0-1之间的小数,会先进行取整运算,0等同于0,NaN等同于0;

12.补齐字符串长度 padStart() padEnd()

13.字符串转为数字 parselnt() parseFloat()

parseInt():转换为数字类型,不能识别小数点

parseFloat():转换为数字类型,只能识别第一个小数点