先介绍下es6里的模板字面量,用反引号包裹,下面是个例子:
let founder = '硬汉';
console.log(`硬汉工作室创始人是${founder}`); // 硬汉工作室创始人是硬汉
模板字面量其实类似于php双引号里的{$var},而js里是${var},比之前的+字符串好点,可以跨行
返回字符串的长度,没啥好说的,如:let len = 'nciaer'.length; // 返回6
去掉字符串两边的空格以及换行符,如:
' 硬汉 '.trim(); // 返回 硬汉
把所有字符变成大写,如:
'nciaer'.toUpperCase(); // NCIAER
吧所有字符变成小写
返回指定位置pos处的字符,pos从0开始,如果pos超限,比如-1,或者100,那么返回空字符串,如:
'硬汉'.charAt(1); // 返回 汉
'硬汉'.charAt(9); // 返回空字符串
返回指定位置pos处的unicode编码,比如指定位置字符是a
则返回97,指定位置是硬
则返回30828
判断字符串是否包含某个字符串subStr,如果有则返回位置,没有返回-1,pos参数是查找的起始位置,如:
'硬汉工作室'.indexOf('硬汉'); // 返回0,代表字符串开头的位置
‘硬汉工作室’.indexOf('硬汉', 1); // 返回-1,因为从位置1开始找是找不到硬汉字符串的
这个方法还有个姐妹方法是lastIndexOf(subStr, pos)
,顾名思义就是返回最后一次出现subStr的位置。但是第二个参数我始终不太明白,有空再测试下
这个方法跟indexOf差不多,都是判断字符串是否存在subStr,但是这个方法返回true/false,其它好像没区别。
返回指定位置的字符串子串,包括start索引的字符,但是不包括end位置的字符,如果省略end,那么就是start到结尾的字符串,如:
'硬汉工作室'.slice(0, 2); // 硬汉
'硬汉工作室'.slice(2); // 工作室
与slice类似的方法还有substring
方法,参数也一样,但是似乎不同的是对end值得处理,比如负数情况下,具体以后再说。
获取子串,与slice不同的是,第二个参数是获取的长度,如果不传,则直接获取到末尾,如:
'nciaer'.substr(1, 2); // ci
'nciaer'.substr(1); // ciaer
分隔字符串函数,用指定的分隔符分隔字符串,然后返回一个数组,第二个参数是限制最多返回的数量,如:
let msg = 'nciaer';
msg.split(''); // 空字符串作为分隔符,['n', 'c', 'i', 'a', 'e', 'r']
msg.split('', 2); // 空字符串作为分隔符,第二个参数为2,那么最多返回2个,['n', 'c']
let family = 'mickey,apple,nciaer';
family.split(','); // ['mickey', 'apple', 'nciaer']
判断是否以字符串str开头,判断是否以字符串str结尾,如果是则返回true。如:
'硬汉工作室'.startsWith('硬汉');// true
'硬汉工作室'.endsWith('工作室')// true
把字符串str1替换成str2,但是仅替换第一个,如果需要全部替换,则需要正则,如:
'硬汉工作室创始人是硬汉'.replace('硬汉', 'nciaer'); // nciaer工作室创始人是硬汉,只替换了第一个硬汉
'硬汉工作室创始人是硬汉'.replace(/硬汉/g, 'nciaer'); // nciaer工作室创始人是nciaer,全部替换了,第一个参数是/硬汉/g