我有这样的字符串:
$K,86107,2,2,04,77.232323,86.330234,00000000000000,V,0,10,,,0,0,410,04,1e29,a16d,7000,0,1537|0|0|4762|0|0,1,0,,,,*22
如果我使用:str.replace('|',",")
它只用逗号替换第一个管道。
如果我使用:str.replace(/|/g,",")
,结果字符串为:
,$,K,,,8,6,1,0,7,,,2,,,2,,,0,4,,,7,7,.,2,3,2,3,2,3,,,8,6,.,3,3,0,2,3,4,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,V,,,0,,,1,0,,,,,,,0,,,0,,,4,1,0,,,0,4,,,1,e,2,9,,,a,1,6,d,,,7,0,0,0,,,0,,,1,5,3,7,|,0,|,0,|,4,7,6,2,|,0,|,0,,,1,,,0,,,,,,,,,*,
我想要的是:
$K,86107,2,2,04,77.232323,86.330234,00000000000000,V,0,10,,,0,0,410,04,1e29,a16d,7000,0,1537,0,0,4762,0,0,1,0,,,,*22
有什么建议吗?
答案 0 :(得分:5)
您需要转义|
使用str.replace(/\|/g, ",");
答案 1 :(得分:1)
正如joyBlanks所说,你可以使用贪婪的正则表达式来完全替换。您还可以使用split()
和join()
...
str = str.split("|").join(",");
split()
使用给定的分隔符将字符串拆分为数组,然后join()
使用给定的分隔符连接数组元素,返回一个字符串。
我会说使用正则表达式,但是也值得知道这个方法。