我有一个我想要操作的简单字符串:
您的订单很快就会处理完毕:
我使用以下方法获取字符串:
var html = jQuery('.checkout td h4').html();
然后我尝试使用:
替换':'html.replace(":", ".");
当我将其打印到控制台时,该字符串与原始字符串相同。我还尝试通过执行以下操作确保html
变量的类型为“string”:
html = html + "";
这没有做任何事情。在搜索时,似乎replace
函数执行RegEx搜索,并且“:”字符可能具有特殊含义。我不知道如何解决这个问题。有人可以帮助我摆脱这个臭的冒号吗?
答案 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(":", ".");
}
);