javascript 正则表达式 反向引用

反向引用语法为“\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>/在匹配"<td id='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>
输出:
成功匹配


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值