我有一個問題,有人不正確地轉義值後面的雙引號被解釋爲JSON字符串。JavaScript的正則表達式替換字符串中的所有雙引號,除非雙引號後跟空格或逗號空格
字符串例如:
{"description":"This is my 12" pizza I ordered.","value":"1"}
當我努力JSON.parse()來處理這個它給因爲轉義雙引號的錯誤(指的以英寸爲單位的大小)
在第一,我想 - 只是這樣做:
string.replace(/\"/g,'\"');
但當然這也逃脫了所有有效的雙引號。所以,我不是正則表達式方面的專家,但我四處尋找答案,我認爲這需要負面預測?
有人可以幫助構建一個正則表達式來尋找(替換)任何序列的雙引號其中接下來的雙字符序列後面的違法doubleqoute是不是太空逗號?
我知道這不是一個全面的解決方法,(讓人去修復他們的結局),但不幸的是,我沒有一個通用的解決方案。
TIA
更新 - 而不是考慮的例子中的字符串(只用於舉例說明)。是否有可能在每個雙引號之前和之後測試是否存在有效的JSON - 即查找以下任何字符: ,{[:
每個雙引號之前和之後?我想這就是我所問 - 這可以用前瞻/後面的正則表達式來完成嗎?
這在創作時會做得更好;你怎麼創建你的_JSON_? –
當你使用JSON.stringify把你的「東西」變成一個json對象時,它應該爲你做自動轉義。你不需要自己做這個;你能否展示你如何構建你首先變成JSON的對象? –
你所要求的正則表達式不會解決你的問題,因爲在'description','this'和'value'這兩個單詞前面的雙引號不應該被轉義,但是不會立即跟隨逗號或空格字符。 – gatkin