1.子正则表达式
形式:/(子正则表达式)/
例1:
var reg = /\w\w/
var str = 'helloword';
var result = reg.exec(str);
结果:he
例2:
var reg = /(\w)\w/
var str = 'helloword';
var result = reg.exec(str);
结果:he,h
结论:he是整个正则匹配的内容,h是第一个括号里的子正则表达式匹配的内容
2.反向引用
形式:/(子正则表达式)\1/ ----------- “\1”是等同于“第1个括号匹配的内容”
例1:
var reg = /(\w)\1/
var str = 'word';
var result = reg.exec(str);
结果:null
结论:这里的“\1”就叫做反向引用,它表示的是第一个括号内的字正则表达式匹配的内容。在上面的例子中,第一个括号里的(\w)匹配了w,因此“\1”就同样表示w了,在余下的字符串里自然找不到w了。
例2:
var reg = /(\w)\1/
var str = 'wwrd';
var result = reg.exec(str);
结果:ww,w
结论:与第二个例子对比就可以发现,“\1”是等同于“第1个括号匹配的内容”,而不是“第一个括号的内容”。