javascript正则表达式学习之位置匹配

2025-05-29 0 40

一、前言

正则表达式匹配模式,要么是匹配字符,要么匹配位置

其实在开发中很少用到匹配位置,本篇文章主要包含:

二、什么是位置

位置:相邻字符之间的位置

javascript正则表达式学习之位置匹配

三、如何匹配位置

在ES5中,共有6个锚:^, $, \\b, \\B, (?=p), (?!p)

可视化形式:

RegExp:/^$\\b\\B(?=a)(?!b)/g

javascript正则表达式学习之位置匹配

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 javascript正则表达式学习之位置匹配 https://www.kuaiidc.com/88653.html

相关文章

发表评论
暂无评论