3

JSON として解析する必要がある文字列があります。

問題は、二重引用符が含まれている場合があり、解析でエラーが発生することです。

例えば:

{
    "id_clients":"58844",

    "id_clients_name" : ""100" test"qw"
}

"開始と終了の間の二重引用符を . に置き換える正規表現が必要\"です。

ありがとう。

4

2 に答える 2

5

ジェネレーターを修正した方が確かに良いのですが、ただの楽しみのために試してみました。これはあなたの場合にうまくいくか、少なくともあなたにインスピレーションを与えるかもしれません:

ここで試すことができます

$( 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);
}
);
于 2013-05-15T22:47:36.450 に答える
-1

試すことができますが、これは開始タグに対してのみ機能します:

.replace(/\"\"/g, '\\""');
于 2013-05-15T14:41:16.523 に答える