原文:https://blog.csdn.net/qq_43161149/article/details/82928324
js 正则表达式的反向引用 1
分析一下这个正则表达式的含义: /(?=(YYYY|YY|MM|DD|HH|mm|ss|ms))1([:/]*)/
————————————————————————————————————————
选择字符:|
com|cn|edu --- 选择其中一个(含有其中一个就能匹配成功)
子表达式:用()包围的就是子表达式
str = "((/d)(/w))"
第一个子表达式:((d)(w))
第二个子表达式:(d)
第三个子表达式:(w)
子表达式:以第一个出现的 ( 为第一个表达式
捕获:将匹配到的子表达式保存在RegExp对象中
RegExp.$1:保存第一个子表达式
RegExp.$2:保存第二个子表达式
RegExp.$3:保存第三个子表达式
...
反向引用:调用捕获到的值
1:指向RegExp.$1
2:指向RegExp.$2
:指向RegExp.$n
例子:
匹配连续相同的三个数字
-
var str = 'ooo111ooo222ooo333ooo123';
-
-
var reg = /(d)11/g;
-
-
var result = str.match(reg);
-
-
console.log(result);//[111,222,333]
匹配类型为abab的数字
-
var str = 'ooo1212ooo2323ooo3434ooo1234';
-
-
var reg = /(d)(d)12/g;// d匹配数字,1对应的是第一个表达式(d),2对应的是第二个表达式(d),g是全局匹配
-
-
var result = str.match(reg);
-
-
console.log(result);
匹配标签内的内容
-
var str = 'ooo<div>hello world!</div>234';
-
-
var reg = /<(w+).*</1>/g;
-
-
var result = str.match(reg);
-
-
console.log(result);
分析
w: 查找字母、数字、下划线
w+: 匹配查找至少一个w的字符串
.: 查找单个字符除了换行符和行结束符
.*: 匹配查找至少零个.的字符串
/: 因为/为特殊字符,所以需要用转义符
1: 反向引用(w+)