我有一个字符串需要解析为JSON。
问题是,它有时可能包含双引号,导致解析错误。
例如:
{
"id_clients":"58844",
"id_clients_name" : ""100" test"qw"
}
我需要一个正则表达式,可以将在开头和结尾的双引号之间的任何双引号替换为 \ "
。
谢谢。
我有一个字符串需要解析为JSON。
问题是,它有时可能包含双引号,导致解析错误。
例如:
{
"id_clients":"58844",
"id_clients_name" : ""100" test"qw"
}
我需要一个正则表达式,可以将在开头和结尾的双引号之间的任何双引号替换为 \ "
。
谢谢。
虽然修理发电机肯定更好,但我只是为了好玩试了一下。这个方法可能适用于你的情况,或者至少能给你一些启示:
你可以在这里尝试它。
$( function()
{
var myString = "{ \"na\"\"me\": \"va\"lue\", \"tes\"\"t\":\"ok\" }";
var myRegexp = /\s*\"([\w\"]+)\"\s*[,}:]/g;
var match;
var matches = [];
// Save all the matches
while((match = myRegexp.exec(myString)) !== null)
{
matches.push(match[1]);
console.log(match[1]);
}
// Process them
var newString = myString;
for (var i=0; i<matches.length; i++)
{
var newVal = matches[i].replace(/\"/g, '\\\"');
newString = newString.replace(matches[i], newVal);
}
alert(myString + "\n" + newString);
}
);
你可以试一试,但这只适用于开头标签:
.replace(/\"\"/g, '\\""');
"
**? - anubhava