2016-04-25 45 views
0

我是JavaScript新手,并且将此代码替换A到B的字符串,但如果有多个As记录,它将只替换第一个A,而其余的将保留为A.请注意stringify被调用两次。在json中替换字符串

"success": function(json) { 
    var old = JSON.stringify(json).replace('"新交易"', '"待审核"'); 
    var newdata = JSON.parse(old); 

    var old = JSON.stringify(newdata).replace('"批准"', '"已充值"'); 
    var newdata = JSON.parse(old); 
    fnCallback(newdata); 
} 
+0

这是有帮助吗? http://stackoverflow.com/questions/1144783/replacing-all-occurrences-of-a-string-in-javascript – ArianJM

+1

为什么你使用替换?你可以改变对象的属性 – isvforall

+0

你的'json'是什么? – isvforall

回答

0

这与JSON无关。 As documented

要执行全局搜索和替换,请在正则表达式中包含g开关。

所以更改此设置:

replace('"新交易"', '"待审核"') 

...这个:

replace(/"新交易"/g, '"待审核"') 
+0

谢谢!我学到了一件新事物! – MuthaFury

0

要在您的环境中使用正则表达式替换的每一个字。因此,检查这个例子,看看它是如何工作的:

var someText = '"新交易""新交易""新交易""新交易""新交易""新交易""新交易""新交易"'; 
    var someText2 = '"批准""批准""批准""批准""批准""批准""批准""批准""批准""批准"'; 
    var old = someText.replace(/"新交易"/g, '"replaced"'); 
    var stuff = someText2.replace(/"批准"/g, '"已充值"'); 

https://jsfiddle.net/n1otvpy1/