当前位置: 移动技术网 > IT编程>开发语言>JavaScript > js 正则表达式之环视结构

js 正则表达式之环视结构

2019年01月08日  | 移动技术网IT编程  | 我要评论
一、环视 1:环视不“占用”字符,只匹配字符所在的特定位置。 2:正则表达式是从左向右进行匹配的。 二、肯定顺序环视(?=....) 子表达式匹配当前位置的右侧字符 图中:红色表示当前位置,绿色表示正则匹配,黄色表示断言匹配 (1):起始位为0 (2):从左向右查看文本,如果当前位置字符与表达式2匹 ...

一、环视

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

 

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网