常见字符串方法
localeCompare()
用本地特定的顺序来比较两个字符串。
用法:String.localeCompare(Strng)
详情:比较两个字符串,若前者小于后者返回小于0的数,相等返回0,大于返回大于0的数。
用途:
var str = "sjcnjnjsdhhhjsjhbhb";
var newStr = str.split("").sort((a, b) => {
return a.localeCompare(b);
}).join("");
console.log(newStr);//bbcdhhhhhjjjjjnnsss
查找指定字符串
-
indexOf()
方法返回字符串指定位置的索引,未找到时返回-1 -
lastIndexOf()
方法返回指定文本在字符串中最后一次出现的索引,未找到时返回-1;该方法与indexOf()
如出一辙,唯一不同的是lastIndexOf()
从字符串的后面开始
let str = "abab";
console.log(str.indexOf("a"));//0
console.log(str.lastIndexOf("a"));//2
上述方法均可传第二个参数,表示从何位置(索引)开始查找指定字符串
search()
方法搜索特定值的字符串,并返回匹配的索引;该方法与indexOf()
相似,不同点在于:search()
无法设置第二个开始位置参数
let str = "abcdefg";
console.log(str.search("bc"));//1
截取部分字符串
slice()
截取字符串某部分,并返回被截取的部分,参数:起始索引(开始位置),终止索引(结束位置);截取的部分包左不包右。- 若参数为负数,则从未尾开始。
- 若省略第二个参数时,则将截取字符串的剩余部分
- 该方法与数组的
slice()
是‘双胞胎’,该方法不会改变字符串,数组的slice()
会改变原数组
let str = "abcdefg";
console.log(str.slice(5,6));//f
console.log(str);//abcdefg
substring()
方法类似于silce()
,不同在于substring()
无法接受负的索引;可省略第二个参数,则该substring()
将截取字符串的剩余部分
let a = "abcdefg";
console.log(a.substring(1,2));//b
a.substring(-1,-2)//""
substr()
方法类似于slice()
,不同在于第二个参数规定被截取部分的长度,若第二个参数为-1,则返回""
;
如果省略第二个参数,则该substr
将截取字符串剩余部分
let a = "abcdefg";
console.log(a.substr(1,2));//bc
a.substr(0,-1)//""
替换字符串内容
replace()
方法用于另一个值替换在字符串中指定的值replace()
只替换首个匹配的值- 不改变原字符串,返回的是新字符串
- 对大小字敏感
let a = "javaScipt is what";
a.replac("javaScipt","c");//c is what
a.replac("javascipt","c");//"javaScipt is what" 大小敏感
//可以用正则忽略大小写
//正则表达式 /i(大小写不敏感)
a.replace(/javascipt/i,"c");//c is what
转换大小写和小写
toUpperCase()
将字符串转换成大写toLowerCase()
将字符串转换成小写
concat()方法
concat()
连接两个或多个字符串,用于代替加运算符
let a = "java"+ "scipt";
let b = "java".concat("scipt")//或者"".concat("java","scipt");
String.trim()
trim()
方法删除字符串两端的空白符
let a = " java ";
a.trim()//"java"
提取字符串字符
charAt()
方法返回字符串中指定下标位置的字符串,不接受负数
let a = "java";
a.charAt(2)//v
charCodeAt()
方法返回字符串中指定索引的字符unicode编码
let a = "java";
a.charCodeAt(0);//106
属性访问(Property Access)
ECMAScript 5 (2009) 允许对字符串的属性访问[]
let a = "java";
a[0];//"j"
【注意点】
使用属性访问有点不太靠谱:
- 不适用IE7以下版本
- 让人感觉像数组(其实并不是)
- 如果使用[]时找不到字符时,返回undefined,而
charAt()
返回空字符串 - 它只读,
str[0] = "m"
不会产生错误(但也不会工作)
把字符串转换成数组
split()
将字符串转换成数组
let a = "a,b,c,d";
a.split(",");//["a", "b", "c", "d"]
a.split("");//"a", ",", "b", ",", "c", ",", "d"