[英]“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.