我有一个字符串,希望使用javascript删除其特定部分中的特殊字符

我有一个字符串,希望使用javascript删除其特定部分中的特殊字符,javascript,jquery,ajax,json,string,Javascript,Jquery,Ajax,Json,String,我有一个字符串,看起来像: var myString= '{"key1":"value1", "key2":"value2", "key3":"value3"}'; 我想要的是只从value3中删除双qoutes和其他特殊字符。。。例如,有时我们会看到字符串如下所示: var myString= '{"key1":"value1", "key2":"value2", "key3":"This is "value" with some special chars etc"}'; 请注意,我不想

我有一个字符串,看起来像:

var myString= '{"key1":"value1", "key2":"value2", "key3":"value3"}';
我想要的是只从value3中删除双qoutes和其他特殊字符。。。例如,有时我们会看到字符串如下所示:

var myString= '{"key1":"value1", "key2":"value2", "key3":"This is "value" with some special chars etc"}';
请注意,我不想删除冒号后和冒号前的双引号,同样,我也不想删除最后的双引号。我只想修改字符串,使其成为:

var myString = '{"key1":"value1", "key2":"value2", "key3":"This is value with some special chars etc"}';

您可能希望将Array
map
函数与string
replace
函数结合使用

要使用
replace
函数,您可能需要使用正则表达式。例如,下面的正则表达式将删除冒号后面的双引号:
[^:]“

要替换字符串数组中未紧跟冒号的每个引号,可以编写以下代码:

var myString= '{"key1":"value1", "key2":"value2", "key3":"value3"}';
var modified = myString.map(function(s) { return s.replace(/[^:]"/g, ''); });
对正则表达式进行自己的修改,以匹配要删除的字符

请参阅。

简单

var myNewString = eval( '('+ myString +')');

var toBeEscaped = myNewString.key3;

var escapedString = doYourCleanUpStuff(toBeEscaped);

myNewString.key3 = escapedString;

myNewString = JSON.stringify(myNewString);
===============

我做了什么

1) 您的字符串看起来像有效的JSON

2) 将其强制转换为JSON对象。(使用
eval()

3) 检索
key3
的值,并将其捕获到某个临时变量中

4) 使用此临时变量执行清理操作

5) 将清理后的临时变量分配回键3

6) 将JSON字符串化


不要用数组操作和分割函数来打败布什,尤其是当有更简单的方法时:)

我想到的第一件事就是分离出你想要的值

您可以
.Split()
获取所需的值

var myString='{“key1”:“value1”,“key2”:“value2”, “key3”:“value3”};var n=str.split(“”;
var key3Value=str.split(//基于您的值)

//在key3Value上运行.replace()以替换双引号等

//重新声明myString以包含更新的key3Value


很抱歉,现在没有时间完成代码,我相信他们的答案比我的好/短。只是想将此作为一个选项。

用eval()胜过我的.Split()想法。(+1)另外,…Stringify是我最喜欢的词。Stringify会将javascript对象转换回字符串。与你想要的一样-使用双引号。@AdityaParab我尝试过你的解决方案,但它说的是SyntaxError:unterminated string literal。你可以在这里检查:bit.ly/mpy8gy我在我这边尝试过,它似乎工作得很好:)你能帮我吗我不知道你到底是从哪里得到这个错误的?