字符串替换不起作用?

时间:2011-03-02 12:36:10

标签: javascript string

我一直在尝试使用以下内容替换为以下字符串...

var r = response.replace('var s = getService().getValue(\"join\")', 'null');

然而,字符串仍未改变,我无法理解为什么。 String本身采用以下格式..

{"r":[],"c":true,"c":{"tags":
[],"":3023,"s":".src.util.S@6f4e9e57","class":"class 
src.util.dtos.DTO","Type":"public","c":"m","s":0,"de
fault":false,"id":544,"d":"","n":4,"na":"S","tagString":"","Pages":5},"results":[],"q":"","msg":"var 
s = getService().getValue(\"join\")

实际的字符串本身有点长,但我希望你从那个摘要中得到这个想法。

2 个答案:

答案 0 :(得分:2)

这是因为在JSON中转义的双引号不应该在单引号字符串中进行转义。

所以,而不是:

var r = response.replace('var joinstakqueries = getService().getValue(\"join\")', 'null');

尝试:

var r = response.replace('var joinstakqueries = getService().getValue("join")', 'null');

答案 1 :(得分:2)

如果你的

var s = getService().getValue(\"join\")

part是JSON字符串中的JavaScript代码,然后您需要在替换之前再次引用它们。

var r = response.replace('var s = getService().getValue(\\"join\\")', 'null');