反向引用语法为“\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>
输出:
成功匹配
分享:
例如正则表达式/\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)){
}else{
}
document.write(msg);
-->
</script>
输出:
成功匹配
------------------------------------------------------------------------------------------------------------------
实例:
<script type="text/javascript">
<!--
var str = "aaaaa";
var reg = /(\w)\1{4}/;
var msg;
if(reg.test(str)){
}else{
}
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)){
}else{
}
document.write(msg);
-->
</script>
输出:
成功匹配