在javascript正则表达式中排除html标记

时间:2016-02-22 16:58:51

标签: regex

我的javascript正则表达式有问题 我尝试在字符串文本中获取所有单词但我需要排除html标签..

我的正则表达式     / \ B([\ S] +)\ b / g的 但例如<br>不排除..

此处的示例https://regex101.com/r/oT9uC1/4

全部

2 个答案:

答案 0 :(得分:0)

最简单的方法是首先剥离标签,
然后在 newtext 上运行你的正则表达式。

newtext = text.Replace( /<(?:script(?:\s+(?:"[\S\s]*?"|'[\S\s]*?'|[^>]*?)+)?\s*>[\S\s]*?<\/script\s*|(?:\/?[\w:]+\s*\/?)|(?:[\w:]+\s+(?:(?:(?:"[\S\s]*?")|(?:'[\S\s]*?'))|(?:[^>]*?))+\s*\/?)|\?[\S\s]*?\?|(?:!(?:(?:DOCTYPE[\S\s]*?)|(?:\[CDATA\[[\S\s]*?\]\])|(?:--[\S\s]*?--)|(?:ATTLIST[\S\s]*?)|(?:ENTITY[\S\s]*?)|(?:ELEMENT[\S\s]*?))))>/g, '');

Demo

答案 1 :(得分:0)

我会尝试在html标签上进行正则表达式替换,而不是尝试查找所有文本。

所以请使用以下内容:

var str = "Non ! Non ! Je ne veux pas d'un éléphant!<br> dans un boa. Un boa c'est très dangereux, et un éléphant c'est très encombrant. Chez moi c'est tout petit. J'ai besoin d'un mouton. Dessine-moi un mouton.";
var res = str.replace(/<.+>/g, "");

您显然可以专门检查br标签并替换为换行符。

然后应该删除所有html标签,只留下原始文本。

另外,最好记住,如果你删除了某些内容,你需要确保留下的内容不会留下可运行的代码。

请参阅此示例:Stripping script tags from HTML input