簡體   English   中英

括號內的轉義引號

[英]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或其他方法一次完成所有操作的方法。

請協助 :)

你至少需要逃脫

  • " -> \\"
  • \\\\ -> \\\\
  • CR-> \\r
  • LF-> \\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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM