【问题标题】:JavaScript Replace String with a Character |JavaScript 用字符替换字符串 |
【发布时间】:2010-01-20 05:39:04
【问题描述】:

当我尝试以下操作时,它不起作用:str.replace("| stuff", "")

但是,如果我移除 PIPE,它会这样做吗? str.replace("stuff", "")

为什么JS函数不允许PIPE | ?我该怎么做才能进行包含管道的替换?

【问题讨论】:

  • 什么是str,你的结果是什么,你想要达到什么目的?

标签: javascript


【解决方案1】:

因为.replace 接受正则表达式,而| 是正则表达式中的特殊字符。你需要逃避它。

例如,使用str.replace(/\|/g, "") 删除每个| 字符。

【讨论】:

  • 谢谢,但我想替换下面的字符串“ | stuff” 将只有一个管道,如何替换两个?
  • 问题示例中没有使用正则表达式,因此无需转义
【解决方案2】:

不,它应该可以工作,除非您使用 /| stuff/RegExp("| stuff") 而不是 "| stuff"

"xyz| stuff".replace("| stuff", ""); //returns xyz

【讨论】:

  • +1 你完全正确。我应该在回答之前进行测试。
  • @S.Mark,刚刚对其进行了测试,它可以在 IE6+、Firefox 2.0+、Chrome 和 Safari 中运行。
【解决方案3】:

不是吗

"xyz| stuff".replace("\| stuff", ""); //returns xyz

【讨论】:

    【解决方案4】:

    str.replace("| stuff", "") 应该可以工作,但只会替换第一次出现。如果要替换所有这些,请尝试使用 str.replace(/\|\sstuff/g, "") 之类的正则表达式

    【讨论】:

    • 或者只是str.replace(/\| stuff/g, ""),但\s 使它适用于任何空白字符
    猜你喜欢
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2016-09-27
    • 2011-05-31
    • 1970-01-01
    相关资源
    最近更新 更多