JavaScript:正则表达式 前瞻
2013-10-17 09:42
639 查看
正向前瞻:用来捕获出现在特定字符之前的字符,只有当字符后面跟着某个特定字符才去捕获它。(?=)
负向前瞻:它用匹配只有当字符后面不跟着某个特定字符时才去匹配它。(?!)
在执行前瞻和负向前瞻之类的运算时,正则表达式引擎会留意字符串后面的部分,然而却不移动index 。
代码:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/76591b75b3531d54736c6eca653d3768.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/ca723d7b474f5c1a722004f2af5692b6.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/851eb33cb769c4be0c4ab259043d473c.png)
负向前瞻:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/4640a321ac44942a24781e9dd96e0312.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/e36547c209a9d7a4887128d35489a094.png)
复杂的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/03d647c15b55bc708998d416f44bcda4.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/11584e139e0612e934ade3f2fedbe3a1.png)
?!负向前瞻,按位置开始
由此判断:
http://blog.csdn.net/lxcnn/article/details/4138218 http://blog.csdn.net/lxcnn/article/details/4304754
负向前瞻:它用匹配只有当字符后面不跟着某个特定字符时才去匹配它。(?!)
在执行前瞻和负向前瞻之类的运算时,正则表达式引擎会留意字符串后面的部分,然而却不移动index 。
代码:
var reg=/([a-z]+(?=\d))/g; var str="abc1bcd2cde"; console.dir(reg.exec(str)); console.dir(reg.exec(str)); console.dir(RegExp); console.log(str.match(reg));
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/76591b75b3531d54736c6eca653d3768.png)
var reg=/[a-z]+(?=\d)/g; var str="abc1bcd2cde"; console.dir(reg.exec(str)); console.dir(reg.exec(str)); console.dir(RegExp); console.log(str.match(reg));
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/ca723d7b474f5c1a722004f2af5692b6.png)
var reg=/[a-z]+(\d)/g; var str="abc1bcd2cde"; console.dir(reg.exec(str)); console.dir(reg.exec(str)); console.dir(RegExp); console.log(str.match(reg));
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/851eb33cb769c4be0c4ab259043d473c.png)
负向前瞻:
var reg=/([a-z]+(?!\d))/g; var str="abc1bcd2cde"; console.dir(reg.exec(str)); console.dir(reg.exec(str)); console.dir(RegExp); console.log(str.match(reg));
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/4640a321ac44942a24781e9dd96e0312.png)
var reg=/[a-z]+(?!\d)/g; var str="abc1bcd2cde"; console.dir(reg.exec(str)); console.dir(reg.exec(str)); console.dir(RegExp); console.log(str.match(reg));
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/e36547c209a9d7a4887128d35489a094.png)
复杂的:
var reg=/<(?!abc>)[^>]*>/g var str="<aaa>bbb<abc>ccc<ddd>"; console.dir(reg.exec(str)); console.dir(reg.exec(str)); console.log(str.match(reg));
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/03d647c15b55bc708998d416f44bcda4.png)
var reg=/(?![aeiou])[a-z]/g var str="abcdefghijklmnopqrstuvwxyz"; console.dir(reg.exec(str)); console.dir(reg.exec(str)); console.log(str.match(reg));
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/11584e139e0612e934ade3f2fedbe3a1.png)
?!负向前瞻,按位置开始
由此判断:
http://blog.csdn.net/lxcnn/article/details/4138218 http://blog.csdn.net/lxcnn/article/details/4304754
相关文章推荐
- javascript正则表达式(4)——前瞻与对象属性
- 【JavaScript 学习--01】--正则表达式的正则前瞻(?=)和非捕获性分组(?:)区别
- JavaScript:正则表达式 前瞻 找位置
- 详解javascript 正则表达式之分组与前瞻匹配
- javascript正则表达式分组-捕获性分组/非捕获性分组/正则前瞻
- JavaScript正则表达式(二)实例方法test
- javascript正则表达式取汉字的长度,一个汉字占两个字节长度
- JavaScript中String对象的match()、replace() 配合正则表达式使用
- JavaScript 常用正则表达式
- 常用的JavaScript验证正则表达式
- javascript正则表达式用法
- JavaScript正则表达式
- JS通用表单验证函数,基于javascript正则表达式(IE下)
- Javascript正则表达式测试网页
- JavaScript强化教程——正则表达式回溯
- .net中正则表达式的客户端验证--javascript
- Javascript中的正则表达式
- Javascript Regular Expression Match 正则表达式的匹配
- 精通 JavaScript中的正则表达式
- JavaScript中的正则表达式解析