javascript 正则表达式 反向引用

javascript 正则表达式 反向引用

(2011-02-18 09:01:37)
标签:

it

分类:正则
反向引用语法为“\num”,即可引用编号为num的字匹配存储的内容。num是从1到99的整数,并且num是前面表达式中已编号的子匹配,当然也不能超出已有编号的范围。

例如正则表达式/\w{5}/可以匹配目标字符串中连续出现五个字符,如"hahfi"、"abadc"、"aaaaa"、"zyich"等都可以成功匹配。如果要求五次出现的都是同一个字符,如"aaaaa"、"ccccc"等,则可以用正则表达式/(\w)\1{4}/来完成匹配,\1{4}表示字匹配(\w)匹配到的结果再重复出现4次。

实例:
<script type="text/javascript">
<!--
var str = "abcde";
var reg = /\w{5}/;
var msg;
if(reg.test(str)){
      msg ="成功匹配";
}else{
      msg ="匹配失败";
}
document.write(msg);
-->
</script>
输出:
成功匹配
------------------------------------------------------------------------------------------------------------------
实例:
<script type="text/javascript">
<!--
var str = "aaaaa";
var reg = /(\w)\1{4}/;
var msg;
if(reg.test(str)){
      msg ="成功匹配";
}else{
      msg ="匹配失败";
}
document.write(msg);
-->
</script>
输出:
成功匹配
-------------------------------------------------------------------------------------------------------------

再来举个较为复杂的例子,正则表达式/<(\w+)\s*(\w+(=('|").*?)\4)?\s*)*>.*?<\/\1>/在匹配"<tdid='td1'style='color:while'></td>"时成功匹配。这里的反向引用\1等于(\w+),从而保证了只有当"<td>"与"<
\td>"配对时,模式匹配才成功,否则匹配失败:而\4等于"'|"",保证"="号后要以单引号"'"或者双引号"""开始,并以对应的符号结尾,如id='td1',不允许出现id=id='td1'的情况。

实例:
<script type="text/javascript">
<!--
var str = "<td id='td1'style='color:while'></td>";
var reg =/<(\w+)\s*(\w+(=('|").*?\4)?\s*)*>.*?<\/\1>/;
var msg;
if(reg.test(str)){
      msg ="成功匹配";
}else{
      msg ="匹配失败";
}
document.write(msg);
-->
</script>
输出:
成功匹配




分享:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值