nciaer
加入于 2023-12-19

80后,中年大叔,北漂,幻想靠技术能致富的那种人。

64 帖子
19 回复
5.3k 获赞

js字符串函数整理

先介绍下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
点赞 (119)
收藏 (24)
分享
举报
评论区 (12条评论)
愤青 10 天前
这么多哪里记得住?
nciaer 11 天前
这是我女神,电视剧《医是医,二是二》的女主牛秧歌。
UBB图片
nciaer 14 天前
评论内容
nciaer 14 天前
我现在最熟悉的似乎还是十几年前的js版本,其实es5都已经是10年前发布的了吧,这几年js真的是发展太快了,可能是因为chrome浏览器盛行?还是说类似于vue的技术流行起来了?
nciaer 14 天前
@nciaer:如果不持续学习,很容易被这个行业所淘汰。
nciaer 14 天前
@nciaer:确实,但是年龄大了,精力明显跟不上了阿。
nciaer 14 天前
学完之后没几天就忘了,怎么破呢?
nciaer 2 个月前
没几天彻底忘了。
nciaer 2 个月前
@nciaer:彻底忘光了。
nciaer 14 天前
@nciaer:谁不是呢
nciaer 14 天前
@nciaer:你也一样阿,哈哈
nciaer 14 天前
@nciaer:要么说呢