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

javascript 正则表达式 反向引用

2016-10-24 16:28 267 查看
反向引用语法为“\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>
输出:
成功匹配
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息