使用Javascript和jQuery替换使用字符串替换的冒号

时间:2011-06-29 17:45:27

标签: javascript string

我有一个我想要操作的简单字符串:

  

您的订单很快就会处理完毕:

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

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

然后我尝试使用:

替换':'
html.replace(":", ".");

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

html = html + "";

这没有做任何事情。在搜索时,似乎replace函数执行RegEx搜索,并且“:”字符可能具有特殊含义。我不知道如何解决这个问题。有人可以帮助我摆脱这个臭的冒号吗?

3 个答案:

答案 0 :(得分:7)

replace函数返回一个包含替换项的新字符串 Javascript字符串是不可变的 - 它不能修改原始字符串。

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

答案 1 :(得分:7)

略有关联......

我无法得到这些答案来替换url编码字符%3a的字符串中的所有“:”,并通过'xdazz'将此答案修改为:Javascript: Replace colon and comma characters来获取... < / p>

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

在你的情况下,它将是

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

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

希望这有助于其他人。

答案 2 :(得分:1)

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

请尝试以下

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

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

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

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