[英]Escape quotes inside of parentheses
我正在使用JSON.stringify
創建以下內容:
{"id":"3172043","Img":"../assets/7/14/NPCgunnerStanding.png","ImgWidth":145,"ImgHeight":210,"Width":"145","Height":"210","Left":649,"Top":165,"Parent":"3172015","MouseOver":"label({HTML: "Gunner"})","Idle":"animate({ rate:100 , pause:4000 })topImage("../assets/img/npc-exclamation3.gif")","MouseOut":"label({})","Proximity":"","Click":"modal({title:"Gunner",iframe: "../assets/7/modals/BEFGunner.php"})"}
並將其存儲在我的數據庫中。 這部分工作正常,但是當我再次查找它時,由於括號內的引號,導致該對象出錯。
我怎樣才能逃避這些報價?
我開始為stringify
調用組合一個替換函數,以檢查這些stringify
,但開始看起來很混亂,我希望找到一種使用regex或其他方法一次完成所有操作的方法。
請協助 :)
你至少需要逃脫
"
-> \\"
\\\\
-> \\\\
\\r
\\n
為此,請在JS中嘗試
var charToJson = { '"': '\\"', '\\': '\\\\', '\r': '\\r', '\n': '\\n' };
var JSONStringLiteral = '"'
+ myPlainTextString.replace(/[\\\"\r\n]/g, function (c) { return charToJson[c]; })
+ '"';
另外,如果您在現代瀏覽器上運行,則JSON.stringify
應該為您執行此操作。
JSON.stringify('{"foo":"bar"}') === '"{\\"foo\\":\\"bar\\"}"'
轉義雙引號
"label({HTML: \"Gunner\"})"
或在里面使用單引號
"label({HTML: 'Gunner'})"
像這樣使用\\
:
{"key":"text (\"blabla\")"}
或獲取更干凈的代碼:
{'key':'text ("blabla")'}
但是,如果您同時具有"
和'
,則別無選擇,例如:
{"key":"text 'blabla' \"otherblabla\""}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.