在html标记之外匹配

时间:2014-08-30 16:15:53

标签: javascript html regex

我有一个网页,用户输入的文字可能包含html。我能够使用正则表达式<.+?>来匹配html标签,但我需要匹配不在其中的文本。例如:<div id="dont-match-inside-tag">Match this text</div>。除了.之外,正则表达式还需要允许标记之外的其他文本匹配。示例将匹配字符串中未包含在标记中的所有大写字母:<div>Match ONLY the UppERCase LettERS</div>

1 个答案:

答案 0 :(得分:0)

仅匹配标签外部的大写字母,

(?:(?!<.+?>)[A-Z])+(?=[^<>]*(?:<\/?|$))

DEMO

[A-Z](?=[^<>]*(?:<\/?|$))

匹配所有大写字母,其中必须跟有的任何字符不是<>的字符,而是次要的是<</字符串或$行结束锚。 DEMO