我有一个字符串,希望使用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
函数与stringreplace
函数结合使用
要使用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我在我这边尝试过,它似乎工作得很好:)你能帮我吗我不知道你到底是从哪里得到这个错误的?