Javascript 如何使用regex删除标记

Javascript 如何使用regex删除标记,javascript,html,regex,string,Javascript,Html,Regex,String,我有这样的字串: <span class="cDkSuggestion"></span> <var class="tSuggestionTag r5">representation</var> <span class="ib p1 tSuggetionName">for<b>rep</b>resentation</span> <var class="tSuggestionTag r5">f

我有这样的字串:

<span class="cDkSuggestion"></span>
<var class="tSuggestionTag r5">representation</var>
<span class="ib p1 tSuggetionName">for<b>rep</b>resentation</span>
<var class="tSuggestionTag r5">for<b>rep</b>res...</var>
<var class="tSuggestionTag r5">cost of representation</var>

代表
代表权
代表。。。
代表费
和正则表达式

query = query.replace(/<var.*>(.*)<\/var>/gi, "");
query=query.replace(/(.*)/gi,”);
这个正则表达式的结果是

<span class="cDkSuggestion"></span>

我需要

<span class="cDkSuggestion"></span>
<span class="ib p1 tSuggetionName">for<b>rep</b>resentation</span>

代表权

如何签入在替换时不包含其他标记的正则表达式?

您确实应该使用解析器,但如果您想要正则表达式,请不要贪心:

/<var.*?>(.*?)<\/var>/gi
/(.*)/gi
或者,更安全:

/<var[^>]*>([^<]*)<\/var>/gi

/]*>([^如果您知道文本仅包含标记,则可以使用以下方法:

String test=testString.replaceAll(“(?i)]*>”,“”)

例如,如果输入字符串是另一个东西,那么上述操作将导致另一个东西

在需要多个标记的情况下,我们可以执行以下操作:


String test=testString.replaceAll((?i)]*>“,”).replaceAll(“\s+”,”).trim();

如果他真的想“不包括其他标记”,这可能是不够的:使用[^你真的不应该使用正则表达式来解析或删除html标记,也许你应该尝试重申你的问题,并解释你所遇到的潜在问题。