标签: javascript html regex
我有一个网页,用户输入的文字可能包含html。我能够使用正则表达式<.+?>来匹配html标签,但我需要匹配不在其中的文本。例如:<div id="dont-match-inside-tag">Match this text</div>。除了.之外,正则表达式还需要允许标记之外的其他文本匹配。示例将匹配字符串中未包含在标记中的所有大写字母:<div>Match ONLY the UppERCase LettERS</div>。
<.+?>
<div id="dont-match-inside-tag">Match this text</div>
.
<div>Match ONLY the UppERCase LettERS</div>
答案 0 :(得分:0)
仅匹配标签外部的大写字母,
(?:(?!<.+?>)[A-Z])+(?=[^<>]*(?:<\/?|$))
DEMO
或强>
[A-Z](?=[^<>]*(?:<\/?|$))
匹配所有大写字母,其中必须跟有的任何字符不是<或>的字符,而是次要的是<或</字符串或$行结束锚。 DEMO
<
>
</
$