我在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 次  |  
        
|   最近记录:  |