正则表达式 负向前瞻

负向前瞻语法为(?!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成功匹配
匹配失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值