45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何反向引用正则表达式?

如何反向引用正则表达式?

2016-08-26 16:54:43 来源:www.45fan.com 【

如何反向引用正则表达式?

正则表达式在计算完以后,每一个分组都被保存到一个特殊的地方以备将来使用。这些存储在分组中的特殊值,称之为反向引用。

反向引用是按照从左到右遇到的左括号字符的顺序来创建和编号的。例如表达式(A?(B?(C?))),将产生编号从13的三个反向引用:

编号1(A?(B?(C?)))

编号2(B?(C?))

编号3(C?)

反向引用一般有如下几种使用方法:

1. 使用正则表达式对象的test(),match()search()方法,反向引用的值可以从RegExp构造函数中获取,如:

Var sToMatch = “#123456789”;

Var reNumbers = /#(/d+)/;

renumbers.test(sToMatch);

alert(RegExp.$1); //输出123456789

2.还可以直接在定义分组的表达式中包含反向引用。这可以通过使用特殊的转移序列如/1/2等来实现。例如:

Var sToMatch = “dogdog”;

Var reDogDog = /(dog)/1/;

Alert(reDogDog.test(sToMatch); //输出true

3.反向引用可以用在String对象的replace()方法中,这通过使用特殊字符序列$1,$2等来实现。例如:

function ReplaceDemo()
{
 var r, re;
 var s = "The quick brown fox jumped over the lazy yellow dog.";
 re = /(/S+)(/s+)(/S+)/g;
 r = s.replace(re, "$3$2$1"); //交换每一对单词。
 return(r);
}

本文地址:http://www.45fan.com/a/question/68050.html
Tags: 表达式 计算 都被
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部