从字符串中删除所有的 <br> 标签。

9

我有一个字符串,想要删除所有的<br>出现的地方。

我尝试了下面的方法,但没有成功。

    productName = productName.replace("<br>"," ");

然而这种方法仅适用于第一个 <br>
    productName = productName.replace("&lt;br&gt;"," ");

我该如何让字符串中的所有<br>都起作用呢?
编辑:这是字符串... 00-6189 Start Mech Switch&lt;br&gt;00-6189 Start Mech Switch&lt;br&gt;00-6189 Start Mech Switch&lt;br&gt; 抱歉之前有一点误导,正确的应该是&lt;br&gt;

如果您使用我的模式,您可以编写<或<,>或>。 - DavideDM
5个回答

18

使用正则表达式,您可以使用此模式:

/(<|&lt;)br\s*\/*(>|&gt;)/g
productName = productName.replace(/(<|&lt;)br\s*\/*(>|&gt;)/g,' ');

那个模式匹配

 <br>, <br />,<br/>,<br     />,<br  >,
 or &lt;br&gt;, &lt;br/&gt;, &lt;br /&gt;

etc...


1
当所有其他方法都失败了,这个成功了! - Stack Underflow

15

看起来你的字符串已经进行了编码,因此请使用

productName = productName.replace(/&lt;br&gt;/g," ");

注意正则表达式后面的 g,它表示全局匹配,以匹配所有出现的情况。

演示请查看http://www.jsfiddle.net/gaby/VDxHx/


1
谢谢,那解决了问题。一开始给大家带来困惑,非常抱歉。 - user357034

6
您可以在正则表达式中使用g标志。这表示替换将在所有出现的地方全局执行,而不仅仅是第一个。
productName = productName.replace(/\<br\>/g," ");

当然,您应该知道这不会替换<br/><br />,只会替换<br>
在ideone上查看此工作的示例
更新:
既然您已经提供了一个带有输入的示例,这里是一个可用的正则表达式,可以用来替换:
productName = productName.replace(/&lt;br&gt;/g, ' ');

+1 对于这个解决方案,但是解释一下标志的含义(以及它是什么)可能会更好。 - nikc.org
@nikc:你不知道如何访问语言文档吗? - tchrist
@user357034:不要转义括号。 - tchrist
1
@user357034,当然可以:'hello <br> and another <br> dfdskj'.replace(/\<br\>/g, ' ') 输出的结果正是预期的。可能你的字符串中不包含 <br>。请注意我的关于 <br/><br /> 的注释。这可能是原因吗? - Darin Dimitrov
1
你为什么要转义括号? - tchrist
显示剩余4条评论

0

试试这个。我确定它会起作用。

productName.replace(/</?br>/g, "");


0

我没有测试过,但你可以尝试这样做

productName.replace(/\<br\>/g,' ');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接