我在javascript中有一个字符串:
var test = '{"test":"\\-"}'
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下内容将其解析为JSON时:
JSON.parse(test)
Run Code Online (Sandbox Code Playgroud)
或者:
$.parseJSON(test)
Run Code Online (Sandbox Code Playgroud)
我得到一个类型为"unexpected_token_number"的SyntaxError.此"test"属性的值是用户可输入字段.我应该如何正确地逃离这个领域?
Fel*_*ing 18
'{"test":"\\-"}'将被解释为JavaScript字符串,结果为{"test":"\-"}.
正如你可以看到在这些图中,\-是不是有效的转义序列(有效的是\",\\,\/,\b,\f,\n,\r,\t,\uxxxx).
JSONLint也给出了错误
Parse error on line 2:
{ "test": "\-"}
-------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
Run Code Online (Sandbox Code Playgroud)
如果你想在JSON中使用两个反斜杠,你也必须在JavaScript字符串中转义它们,所以你最终会得到它们
var test = '{"test": "\\\\-"}';
Run Code Online (Sandbox Code Playgroud)
否则,省略它:
var test = '{"test": "-"}';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14776 次 |
| 最近记录: |