«

js字符串函数整理

nciaer 发布于 阅读:1376 javascript


食伤
先介绍下es6里的模板字面量,用反引号包裹,下面是个例子:

let founder = '硬汉';
console.log(`硬汉工作室创始人是${founder}`); // 硬汉工作室创始人是硬汉

模板字面量其实类似于php双引号里的{$var},而js里是${var},比之前的+字符串好点,可以跨行

length属性

返回字符串的长度,没啥好说的,如:let len = 'nciaer'.length; // 返回6

trim()方法

去掉字符串两边的空格以及换行符,如:

' 硬汉  '.trim(); // 返回 硬汉

toUpperCase()方法

把所有字符变成大写,如:

'nciaer'.toUpperCase(); // NCIAER

toLowerCase()方法

吧所有字符变成小写

charAt(pos)方法

返回指定位置pos处的字符,pos从0开始,如果pos超限,比如-1,或者100,那么返回空字符串,如:

'硬汉'.charAt(1); // 返回 汉
'硬汉'.charAt(9); // 返回空字符串

charCodeAt(pos)方法

返回指定位置pos处的unicode编码,比如指定位置字符是a则返回97,指定位置是则返回30828

indexOf(subStr[, pos])方法

判断字符串是否包含某个字符串subStr,如果有则返回位置,没有返回-1,pos参数是查找的起始位置,如:

'硬汉工作室'.indexOf('硬汉'); // 返回0,代表字符串开头的位置
‘硬汉工作室’.indexOf('硬汉', 1); // 返回-1,因为从位置1开始找是找不到硬汉字符串的

这个方法还有个姐妹方法是lastIndexOf(subStr, pos),顾名思义就是返回最后一次出现subStr的位置。但是第二个参数我始终不太明白,有空再测试下

includes(subStr[, pos])方法,ES6

这个方法跟indexOf差不多,都是判断字符串是否存在subStr,但是这个方法返回true/false,其它好像没区别。

slice(start[, end])方法

返回指定位置的字符串子串,包括start索引的字符,但是不包括end位置的字符,如果省略end,那么就是start到结尾的字符串,如:

'硬汉工作室'.slice(0, 2); // 硬汉
'硬汉工作室'.slice(2); // 工作室

与slice类似的方法还有substring方法,参数也一样,但是似乎不同的是对end值得处理,比如负数情况下,具体以后再说。

substr(index[, length])方法

获取子串,与slice不同的是,第二个参数是获取的长度,如果不传,则直接获取到末尾,如:

'nciaer'.substr(1, 2); // ci
'nciaer'.substr(1); // ciaer

split(separator, [num])方法

分隔字符串函数,用指定的分隔符分隔字符串,然后返回一个数组,第二个参数是限制最多返回的数量,如:

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']

startsWith(str)方法,endsWith(str)方法,es6

判断是否以字符串str开头,判断是否以字符串str结尾,如果是则返回true。如:

'硬汉工作室'.startsWith('硬汉');// true
'硬汉工作室'.endsWith('工作室')// true

replace(str1, str2)方法

把字符串str1替换成str2,但是仅替换第一个,如果需要全部替换,则需要正则,如:

'硬汉工作室创始人是硬汉'.replace('硬汉', 'nciaer'); // nciaer工作室创始人是硬汉,只替换了第一个硬汉
'硬汉工作室创始人是硬汉'.replace(/硬汉/g, 'nciaer'); // nciaer工作室创始人是nciaer,全部替换了,第一个参数是/硬汉/g

string

收到17条评论
avatar
nciaer 24 天前
3333333333333333333
回复
commentator
逗逼 23 天前
@nciaer:这不就是垃圾评论吗?
回复
avatar
nciaer 24 天前
3333333333333
回复
avatar
nciaer 24 天前
222222222222222222
回复
avatar
nciaer 24 天前
4444444444444444444
回复
avatar
nciaer 24 天前
333333333
回复
avatar
nciaer 24 天前
44444444
回复
avatar
nciaer 24 天前
333333333
回复
avatar
nciaer 24 天前
3333
回复
avatar
nciaer 24 天前
555555555
回复
avatar
nciaer 24 天前
33333333333
回复