[英]“Uncaught SyntaxError: Unexpected token ?” in both JSON.parse() and $.parseJSON()
我不知道為什么要得到這個,我花了整整一天的時間試圖弄亂代碼。 現在,我能得到的最簡單的方法是(嘗試使用來自數據庫的轉義字符串構建JavaScript數組):
vat test = '["<script>var bob = \\"This is ok\\"</script>", "<script>search.replace(/!|\\\?)/g, \\"\\")</script>"]';
到現在為止還挺好。
然后這會中斷並返回錯誤:
JSON.parse(test);
給出一個想法,原始的2個數組項是:
<script>var bob = "This is ok"</script>
<script>search.replace(/!|\?)/g, "")</script>
除了現在,由於我CMS中用戶輸入的行中的問號,所有輸入數據庫的所有代碼都一直有效。 如果我刪除它或將問號替換為其他任何東西,它將起作用。
我不能更改正則表達式,以便使其以任何其他方式起作用,我不是輸入此正則表達式的人。 加上這是整個腳本的簡化版本,我只是將其縮小為問號。
如果問號對json有特殊含義,我什么也沒找到。
我希望我可以發送一個小提琴而不只是代碼,但是jsfiddle不允許我在javascript窗口中添加標簽。
JSON.parse('["<script>var bob = \\"This is ok\\"</script>", "<script>search.replace(/!|\\\?)/g, \\"\\")</script>"]')
SyntaxError: Unexpected token ?
這里有兩種unescape,所以在?
之前需要額外的\\
?
JSON.parse('["<script>var bob = \\"This is ok\\"</script>", "<script>search.replace(/!|\\\\?)/g, \\"\\")</script>"]')
["<script>var bob = "This is ok"</script>", "<script>search.replace(/!|\?)/g, "")</script>"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.