正则表达式匹配所有带有两个或更多字符的html标签,但ul和ol以及其中的列表项

时间:2012-12-11 02:10:26

标签: javascript regex

即。

  

a b i u ol l li

标签不匹配,但

  

br

和任何其他标签匹配。

提前致谢。

我得到的正则表达式是

  

/<([a-zA-Z] {2,})\ b [^>] *> / g

不满足不匹配ul和ol

1 个答案:

答案 0 :(得分:2)

这可能就是你想要的(顺便说一下,它只会匹配开放标签,因为我模仿你所拥有的):

/<\s*(?![uo]l\b)([a-zA-Z]{2,})\s*>/g

我在<之后和>之前允许可选空格。

我使用否定向前看(?![uo]l\b)来检查标记是ul还是ol。我抛出一个单词边界检查\b,以确保它不是某个用户定义标签的一部分。

我假设标签名称仅包含英文字母。如果此假设不成立,您可以修改正则表达式。