详解JavaScript正则表达式之分组匹配及反向引用

前端之家收集整理的这篇文章主要介绍了详解JavaScript正则表达式之分组匹配及反向引用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

语法

元字符:(pattern)  作用:用于反复匹配的分组

属性$1~$9  如果它(们)存在,用于得到对应分组中匹配到的子串

\1或$1  用于匹配第一个分组中的内容

\2或$2  用于匹配第一个分组中的内容

...

\9或$9  用于匹配第一个分组中的内容

用法示例

(A+) //RegExp.$2 <-> ((B|C|D)+) //RegExp.$3 <-> (B|C|D) //RegExp.$4 <-> (E+)

以上的代码也同时给出了$1~$9的用法

$1~$9是正则表达式预定义的静态属性,通过RegExp.$1引用

分组嵌套关系说明

上述代码也可以说明分组的嵌套关系

输出:["ABCDE"] reg.exec(str,'i');//输出:["ABCDE","A","BCD","D","E"] RegExp.$1;//输出:"A" RegExp.$2;//输出:"BCD" RegExp.$3;//输出:"D" RegExp.$4;//输出:"E"

这样就可以很明白的看出分组的嵌套关系了

总结来说:大的分组中存在小的分组时,小的分组是排在该大分组后面的分组,以此类推

第二部分

这部分主要讲解类似于"\1"这个东西的用法

分组匹配之反向引用

语法

元字符 \1~\9  作用:用来表示前面以匹配的字符或分组的一个引用

用法示例

参考文章:[原]

上面说的可能有些拗口,下面给一个例子:

输出: ["AA","99"]

所以,参照上边我所引用的文章中给出的 "关键字搜索高亮显示的正则表达用法" 的例子,我给出自己改进的小的DEMO

虽然这个DEMO没有用到任何的关于反向引用的知识点::>_<::

搜索的关键字 var text = " I am a text,and I have a keywords before this";//待匹配的文本 var reg = new RegExp("("+key+")","g"); text.replace(reg,"$1");//输出: " I am a text,and I have a keywords before this"

下面给大家详细介绍下正则表达式之反向引用

示例1:

反向引用,匹配重复的数字

([\d])====>\1

([3])====>\2

示例2:

原文链接:https://www.f2er.com/js/49753.html

猜你在找的JavaScript相关文章