捕获反向引用

正则表达式中最复杂的术语是正则中定义的捕获(captures)的反向引用。

有两种方法可引用到捕获到的匹配结果:一个是自身匹配,一个是替换字符串。不过,特点都是一样的:反向引用的内容需要在运行时才能确定。

常见的应用是使用捕获反向引用来匹配XML或者HTML这样的文本标记语言。下面是一个自身匹配的例子:

var reg = /<(\w+)>(.*)<\/\1>/;
var htmlStr = '<strong></strong>';
console.log(reg.test(htmlStr));  // => true

另外一个常见的场景是,String.prototype.replace() 方法的第二个参数中,可以使用诸如$1来引用正则表达式里捕获到的匹配字符串。

var str = 'fontFamily';
console.log(str.replace(/([A-Z])/g, '-$1').toLowerCase());  // => 'font-family'

results matching ""

    No results matching ""