您的位置:首页 > Web前端 > JavaScript

正则表达式 负向前瞻

2016-10-24 16:44 232 查看
负向前瞻语法为(?!pattern),在被搜索字符串的相应位置不能有pattern部分表示的内容,也不将其作为匹配结果进行处理,当然也不会存储在缓冲区。

例如正则表达式 /bed(?!room)/只能匹配后面不跟字串"room"的字串"bed",如字串"bedrock"等,且子串"room"并不作为匹配的结果返回。

实例:
<script type="text/javascript">
<!--
var str = "bedroom bedclass";
var reg = /bed(?!room)/g;
var arr = reg.exec(str);
var msg;
if(arr){
    msg
= arr+"成功匹配<br>";
}else{
    msg
= "匹配失败<br>";
}
document.write(msg);
arr = reg.exec(str);
if(arr){
    msg
= arr+"成功匹配<br>";
}else{
    msg
= "匹配失败<br>";
}
document.write(msg);
-->
</script>
输出:
bed成功匹配
匹配失败

--------------------------------------------------------------------------------------------------------------
同样,正则表达式/Windows(?!2000|xp)/匹配除"Windows2000"和"Windowsxp"之外的子串"Windows",如子串"WindowsNT"等,且子串"2000"和"xp"不作为匹配的结果返回。

实例:
<script type="text/javascript">
<!--
var str = "Windows2000 Windowsxp WindowsNT";
var reg = /Windows(?!2000|xp)/g;
var arr = reg.exec(str);
var msg;
if(arr){
    msg
= arr+"成功匹配<br>";
}else{
    msg
= "匹配失败<br>";
}
document.write(msg);
arr = reg.exec(str);
if(arr){
    msg
= arr+"成功匹配<br>";
}else{
    msg
= "匹配失败<br>";
}
document.write(msg);
-->
</script>
输出:
Windows成功匹配
匹配失败
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息