正则表达式每日一学:探讨边界\b和\B的基本知识和应用法则 - Web前端
作者:98wpeu发布时间:2026-08-31分类:网页前端技术浏览:8
导读:春节临近,归家心情很复杂,因为疫情也有些波动了,希望能回家过个年,大家一起祈祷吧!今天我们来了解下正则表达式:探讨边界\b和\B的基本知识和应用法则。定义正则表达式中:\b表示单...

春节临近,归家心情很复杂,因为疫情也有些波动了,希望能回家过个年,大家一起祈祷吧!
今天我们来了解下正则表达式:探讨边界\b和\B的基本知识和应用法则。
定义
正则表达式中:
\b 表示单词边界
\B 表示非单词边界,应理解为(非单词)边界,而不是非(单词边界),它仍然匹配的是边界
边界
我将正则中的位置分为 字符的占位 和 字符的间隙。
字符的占位是显式的位置。
以 I'm iron man 为例。
肉眼可见的字母 符号 空格都是可以占位的字符,也就是可以用下标获取到字符的位置。
字符的间隙是隐式的位置。
即显示位置之间的位置,比如I和'之间的位置,字符串开头和I之间的位置等。
边界 指的是占位的字符左右的间隙位置。
单词
正则中所说的单词指的是 \w 可以匹配的字符,即数字、大小写字母以及下划线 [0-9a-zA-Z_]
\b 单词边界
单词边界匹配的就是这样的间隙位置:
左边占位的字符或右边占位的字符,至少有一个不是 \w
// 只有首尾位置匹配
console.log('0aZ_'.Replace(/\b/g, '.')) // .0aZ_.
// +不是\w,所以它的左右间隙都可以被匹配
console.log('a+a'.replace(/\b/g, '.')) // .a.+.a.
// 空格也不是\w,所以它的左右间隙都可以被匹配
console.log('a a'.replace(/\b/g, '.')) // .a. .a.\B 非单词边界
理解了 \b,\B就好理解了。
它匹配的也是 边界 ,针对的是 与 \b 相反 的 非单词(\W)。
也就是,左右占位的字符,都必须是 \w。
或者说 所有不能被\b匹配的 边界。
console.log('0aZ_'.replace(/\B/g, '.')) // 0.a.Z._
console.log('a+a'.replace(/\B/g, '.')) // a+a.
console.log('a a'.replace(/\B/g, '.')) // a a实例解析
单词边界:
var str = ' 2 ';//其中空格与2之间的位置叫做单词边界,匹配\b
非单词边界:
var str = ",,,,,和呵呵,,,,,"; var reg = '\B呵\B';//reg匹配中间的呵,其两侧都是字符,中间的位置为非单词边界。
统计以“,”分割的元素中“3”的个数:
var test = "137,1,33,4,3,6,21,3,35,93,2,98"; var count = test.match(test, "\b3\b").length; //结果:2
千分位分割数字,将输出成7,654,321这样的格式:
'7654321'.replace(/\B(?=(\d{3})+(?!\d))/g,',')
//7,654,321(匹配末尾是非数字,中间是连续3位数字整倍数的非单词边界)
'99893'.replace(/\B(?=(\d{3})+$)/g, ',')
// '99,893'手机号344分割:
'12345678901'.replace(/\B(?=(?:\d{4})+$)/g, '-')
// '123-4567-8901'大家可以去试试吧!
相关推荐
- 谷歌浏览器Google Chrome新版本给我们带来了哪些新体验? - Web前端
- 如何在 Windows PC 上安装 Linux - Web前端
- 码了六年代码,我为什么选择转岗做产品经理? - Web前端
- 微软将 Windows 终端设为默认的 Windows 11 命令行选项 - Web前端
- 学习CSS:使用 PostCSS 启用即将推出的 CSS 功能 - Web前端
- JS开发小应用:实现钱包余额数字跳动效果 - Web前端
- 您应该采用微前端架构的 5 个理由 - Web前端
- CSS3 2D转换:分享常用的5种【translate()、rotate()、scale()、skew()、matrix()】实现方式 - Web前端
- IOS响应式设计:如何去定位UI设计和前端布局 - Web前端
- JavaScript开发TIPS:了解下useRef和useState - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 5【第六章】Foundation之按钮和下拉功能 - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


