【问题标题】:remove all <br> from a string从字符串中删除所有 <br>
【发布时间】:2017-05-17 16:15:19
【问题描述】:

我有一个字符串,我想删除所有出现的&amp;lt;br&amp;gt;

我试过了,没用。

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

但这有效,但仅适用于第一个 &amp;lt;br&amp;gt;

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

如何让它适用于字符串中的所有&amp;lt;br&amp;gt;

编辑:这是字符串...

00-6189 Start Mech Switch&lt;br&gt;00-6189 Start Mech Switch&lt;br&gt;00-6189 Start Mech Switch&lt;br&gt;

我很抱歉对 &amp;lt;br&amp;gt; 有点误导,因为它应该是 &amp;lt;br&amp;gt;

【问题讨论】:

  • 如果你使用我的模式,你可以写 或 >我

标签: javascript regex


【解决方案1】:

使用正则表达式可以使用这种模式

/(<|&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;

等等……

【讨论】:

  • 一切都失败了,这成功了!
【解决方案2】:

看起来您的字符串已编码,因此请使用

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

注意正则表达式后面的g,表示全局匹配所有匹配项。

http://www.jsfiddle.net/gaby/VDxHx/ 上的演示

【讨论】:

  • 谢谢你成功了,对不起大家一开始的误导。
【解决方案3】:

您可以在正则表达式中使用g 标志。这表明替换将在所有出现的情况下全局执行,而不仅仅是在第一次出现。

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

当然您应该知道,这不会取代&lt;br/&gt;&lt;br /&gt;,而只会取代&lt;br&gt;

在 ideone 上查看 example


更新:

现在您已经提供了一个输入示例,这里有一个可以用来替换的有效正则表达式:

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

【讨论】:

  • +1 为解决方案,但几句话解释为什么标志是有意义的(以及它是什么)可能不会受到伤害。
  • @nikc:你不知道如何访问语言文档吗?
  • @user357034:不要转义括号。
  • @user357034,它当然可以工作:'hello &lt;br&gt; and another &lt;br&gt; dfdskj'.replace(/\&lt;br\&gt;/g, ' ') 准确地打印出预期的内容。您的字符串可能不包含&lt;br&gt;。请参阅我关于 &lt;br/&gt;&lt;br /&gt; 的评论。会是这样吗?
  • 你转义括号是为了什么?
【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多