我正在尝试在 javascript 中使用 replace 语句,以便最终我可以使用当前在字符串中传递的一些数据创建一个数组。
我有以下 javascript:
console.log('data from server:' + server_rule_segements);
//remove trailing ~
server_rule_segements = server_rule_segements.substring(0,server_rule_segements.length-2); // stripping off trailing ~,
console.log("1 - " + server_rule_segements);
server_rule_segements = server_rule_segements.replace("~,,", "~");
console.log("2 - " + server_rule_segements);
这是控制台中的结果:
data from server:Home Number,1234,1,no~,,Work Number,12342342,1,no~,,Work Number,12344412341234,1,no~,
1 - Home Number,1234,1,no~,,Work Number,12342342,1,no~,,Work Number,12344412341234,1,no
2 - Home Number,1234,1,no~Work Number,12342342,1,no~,,Work Number,12344412341234,1,no
我想知道为什么替换命令没有替换“〜,”的所有实例。正如您在第二个调试语句中看到的那样,仍然有一个......在我所说的“记录 2”中。我确定这是我错过的一些简单的事情......但我现在看不到它。
在测试时,我更改了代码,以便调用两次 replace 方法,如下所示:
server_rule_segements = server_rule_segements.replace("~,,", "~");
server_rule_segements = server_rule_segements.replace("~,,", "~");
然后它就起作用了。但我认为我不应该这样做。