【问题标题】:Replacing a colon using string replace using Javascript and jQuery [duplicate]使用 Javascript 和 jQuery 使用字符串替换替换冒号 [重复]
【发布时间】:2011-06-29 17:45:27
【问题描述】:

我有一个简单的字符串,我正在尝试操作:

您的订单将很快得到处理:

我使用以下方法抓取字符串:

var html = jQuery('.checkout td h4').html();

然后我尝试使用以下方法替换“:”:

html.replace(":", ".");

当我将它打印到控制台时,字符串与原始字符串相同。我还尝试通过执行以下操作来确保 html 变量的类型为“字符串”:

html = html + "";

这没有任何作用。在四处搜索时,似乎replace 函数进行了正则表达式搜索,并且“:”字符可能具有特殊含义。我不知道如何解决这个问题。谁能帮我摆脱这个臭冒号?

【问题讨论】:

    标签: javascript string


    【解决方案1】:

    有点相关……

    我无法得到这些答案来替换字符串中的所有“:”以用于 url 编码字符 %3a,并通过'xdazz' 修改此答案以使其工作:Javascript: Replace colon and comma characters 得到...

    str = str.replace(/:\s*/g, "%3a");
    

    在你的情况下

    str = str.replace(/:\s*/g, ".");
    

    如果您想用较长字符串上的句点替换所有冒号。

    希望这对其他人有所帮助。

    【讨论】:

      【解决方案2】:

      replace 函数返回一个带有替换的新字符串。
      Javascript 字符串是不可变的——它不能修改原始字符串。

      你需要写html = html.replace(":", ".");

      【讨论】:

      • 可以发誓我试过了,但它没有用......哦,好吧......它现在肯定可以工作了。谢谢!我会在 9 分钟内给你支票。
      【解决方案3】:

      我认为 c++ 是唯一一种字符串可变的高级语言。这意味着replace 不能修改它所操作的字符串,因此必须返回一个新字符串。

      改用以下方法

      var element = jQuery('.checkout td h4');
      
      element.html(element.html().replace(":", "."));
      

      或者,也许更正确(因为您可能有多个元素)。

      jQuery('.checkout td h4').html(
          function (index, oldHtml) {
              return oldHtml.replace(":", ".");
          }
       );
      

      【讨论】:

        猜你喜欢
        • 2018-12-26
        • 1970-01-01
        • 2012-07-23
        • 2015-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多