一、前言
二、什么是位置
在ES5中,共有6个锚:^, $, \\b, \\B, (?=p), (?!p)
可视化形式:
RegExp:/^$\\b\\B(?=a)(?!b)/g
3.1 ^和$
比如:我们把字符串的开头和结尾用#替换(位置可以替换成字符的):
?
|
1
2
3
|
var result = "hello".replace(/^|$/g, '#');
console.log(result);
// "#hello#"
|
多行匹配模式(有修饰符m)时,二者是行的概念,我们需要注意:
?
|
1
2
3
|
var result = "I\\nlove\\njavascript".replace(/^|$/gm, '#');
console.log(result);
// #I#// #love#// #javascript#
|
3.2 \\b和\\B
\\b是单词边界,具体就是\\w和\\W之间的位置,也包括\\w与^之间的位置,和\\w和$之间的位置。
比如考察文件名"[JS] Lesson_01.mp4"中的\\b,如下:
?
|
1
2
3
|
var result = "[JS] Lesson_01.mp4".replace(/\\b/g, '#');
console.log(result);
// "[#JS#] #Lesson_01#.#mp4#"
|
首先,我们知道\\w是字符组[0-9a-zA-Z]的简写,即使字母数字或者下划线中任何一个字符。而\\W是字符组[^0-9a-zA-Z]的简写,即\\W是\\w以外的任何一个字符。
我们再来看#是怎么来的:
第1个,两边字符是"["与"J",是\\W与\\w之间的位置。
第2个,两边字符是"S"与"]",也就是\\w与\\W之间的位置。
第3个,两边字符是空格与"L",也就是\\W与\\w之间的位置。
第4个,两边字符是"1"与".",也就是\\w与\\W之间的位置。
第5个,两边字符是"."与"m",也就是\\W与\\w之间的位置。
第6个,位于结尾,前面的字符"4"是\\w,即\\w与$之间的位置。
知道了\\b概念后,那\\B就好理解了,\\b是单词边界,\\B是非单词边界
?
|
1
2
3
|
var result = "[JS] Lesson_01.mp4".replace(/\\B/g, '#');
console.log(result);
// "#[J#S]# L#e#s#s#o#n#_#0#1.m
相关文章
猜你喜欢
TA的动态
快网idc优惠网QQ交流群
您的支持,是我们最大的动力!
热门文章
热门评论
|



