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

5

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

您的订单将很快处理:

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

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

我会尝试使用以下方法替换 ':' :

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

当我将其打印到控制台时,该字符串与原始字符串相同。我还尝试确保html变量是"string"类型,方法如下:
html = html + "";

这并没有起到任何作用。在搜索周围时,似乎replace函数执行的是正则表达式搜索,而":"字符可能具有特殊含义。我不知道如何解决这个问题。有人能帮我去掉这个可恶的冒号吗?

3个回答

10
稍有关联...
我无法使这些答案起作用,将字符串中所有的 ":" 替换为 url 编码字符 "%3a"。但是,我修改了 'xdazz' 的答案并让它工作: Javascript: Replace colon and comma characters,以获得...
str = str.replace(/:\s*/g, "%3a");

在你的情况下,它将是:

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

如果你想在一个较长的字符串中用句点替换所有的冒号。

希望这能帮到其他人。


8

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

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


我本来以为我试过了,但没起作用...不过现在肯定是好的。谢谢!等9分钟后我会给你打钩的。 - tollmanz

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(":", ".");
    }
 );

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