js 正则表达式之环视结构
2019-01-08 08:23:14来源:博客园 阅读 ()
一、环视
1:环视不“占用”字符,只匹配字符所在的特定位置。
2:正则表达式是从左向右进行匹配的。
二、肯定顺序环视(?=....)
子表达式匹配当前位置的右侧字符
图中:红色表示当前位置,绿色表示正则匹配,黄色表示断言匹配
(1):起始位为0
(2):从左向右查看文本,如果当前位置字符与表达式2匹配成功,就查看右侧文本是否满足断言条件,当条件1与条件2都成立时就匹配成功。
三、肯定逆向环视(?<=...)
子表达式匹配当前位置的左侧字符
图中:红色表示当前位置,绿色表示正则匹配,黄色表示断言匹配
(1):起始位为0
(2):从左向右查看文本,如果当前位置的左侧能与表达式(?=4)匹配成功,就进入下一个表达式2的匹配。当条件1与条件2都成立时就匹配成功。
三、否定逆向环视(?<!...)与否定顺序环视(?!...)
类似逻辑表达式 非
四、实例-1 行分位
'use strict'; { // 千分位 let str = "当前消费 ¥1203.00元"; let reg = new RegExp(/(?<=\d)(?=(?:\d{3})+(?!\d))/g); let result = str.replace(reg,','); console.log(result); //当前消费 ¥1,203.00元 }
五、实例-2 电话号码格式化
'use strict'; { // 电话号码格式化为:xxx-xxxx-xxxx let str = "18210443800"; let reg = new RegExp(/(?<=\d)(?=(?:\d{4})+(?!\d))/g); let result = str.replace(reg,'-'); console.log(result); // 182-1044-3800 }
六、实例-3 身份证号格式化
'use strict'; { // 身份证号格式化为:xxxxxx xxxx xxxx xxxx let str = "110101199003070812"; // 随便输的号码 用于测试 let reg = new RegExp(/(?<=\d{6})(?=(?:\d{4})+(?!\d))/g); let result = str.replace(reg,' '); console.log(result); // 110101 1990 0307 0812 }
我的百度经验地址:https://jingyan.baidu.com/article/e73e26c07f51a724adb6a7e4.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JavaScript函数表达式详解及实例 2020-03-25
- Javascript正则 2019-08-14
- 常用正则表达式 2019-08-14
- JavaScript RegExp(正则表达式) 对象 2019-08-14
- 手机号码正则表达式 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash