50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > js正则匹配闭合标签_正则表达式匹配封闭html标签

js正则匹配闭合标签_正则表达式匹配封闭html标签

时间:2019-09-04 22:28:00

相关推荐

js正则匹配闭合标签_正则表达式匹配封闭html标签

统计代码行数

只需一个正则就

搞定。嵌套

Html

标签的匹配是正则表达式应用中一个比较难的话题,因为它涉

及到的正则语法比较多,也比较难。因此也就更有研究的价值。

思路

任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,

一方面需要有化繁为简的功底,

另外一方面,

我们需要从正则引擎的角度去思考

问题。关于正则引擎的原理,推荐《

Mastering

Regular

Expression

》中文名叫

《精通正则表达式》。挺不错的一本书。

OK

,先确定我们要解决的问题——

从一段

Html

文本中找出特定

id

的标签的

innerHTML

这里面最大的难点就是,

Html

标签是支持嵌套的,怎么能够找到指定标签相对

应的闭合标签呢?

我们可以这样想,

先匹配最前面的起始标签,假设是

div

吧(

),接着一

旦遇到嵌套

div

就“压入堆栈”,

后面如果遇到

div

闭合标签了,

就“弹出堆

栈”。如果遇到闭合标签的时候,堆栈里面已经没有东西了,那么匹配结束,

此结束标签为正确的闭合标签

我之所以能够这样去思考,

是因为我了解过正则的特性,

我知道正则中的平衡组

能够实现我刚才说的“堆栈”操作。

所以,

如果我们要编写复杂正则表达式,

要对正则的一些高级特性至少有所了解,这样我们思考问题才有个方向。

实现

这里假设我们要匹配的文本是一段合法的

Html

文本。

下面这段

Html

代码是从我

的博客上拷贝下来的,

作为我们的测试文本。

我们要匹配的就是

footer

这个

div

innerHTML

,同时把标签名也捕获下来。

id="gotop"

href="#"

οnclick="MGJS.goTop();return

false;">Top

WordPress

Copyright©

简单生活

——

KevinYang

的博客

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。