如何使用JSON.parse解析正则表达式

时间:2017-08-30 05:10:37

标签: javascript json

我在解析json

之后遇到了问题
"name.regex" : "/^\s*.{1,500}\s*$/"

我收到以下异常

Uncaught SyntaxError: Unexpected token ' in JSON at position 170

3 个答案:

答案 0 :(得分:0)

我认为它是关于逃避炭 改为

        "validate.name.expression" : "/^\\s*.{1,500}\\s*$/"

工作

答案 1 :(得分:0)

$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");

echo "Normal: ",  json_encode($a), "\n";

echo "Tags: ",    json_encode($a, JSON_HEX_TAG), "\n";

echo "Apos: ",    json_encode($a, JSON_HEX_APOS), "\n";

echo "Quot: ",    json_encode($a, JSON_HEX_QUOT), "\n";

echo "Amp: ",     json_encode($a, JSON_HEX_AMP), "\n";

echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";

echo "All: ",     json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";

输出:

  

正常:[“”,“'bar'”,“\”baz \“”,“&amp; blong&amp;”,“\ u00e9”]

     

标签:[“\ u003Cfoo \ u003E”,“'bar'”,“\”baz \“”,“&amp; blong&amp;”,“\ u00e9”]

     

Apos:[“”,“\ u0027bar \ u0027”,“\”baz \“”,“&amp; blong&amp;”,“\ u00e9”]

     

Quot:[“”,“'bar'”,“\ u0022baz \ u0022”,“&amp; blong&amp;”,“\ u00e9”]

     

Amp:[“”,“'bar'”,“\”baz \“”,“\ u0026blong \ u0026”,“\ u00e9”]

     

Unicode:[“”,“'bar'”,“\”baz \“”,“&amp; blong&amp;”,“é”]

     

全部:   [ “\ u003Cfoo \ u003E”, “\ u0027bar \ u0027”, “\ u0022baz \ u0022”, “\ u0026blong \ u0026”, “E”]

答案 2 :(得分:0)

"name.regex" : "/^\s*.{1,500}\s*$/"无效JSON。如果这实际上是您要解析的内容,则需要将其放在一个块中以使其有效,然后将该块放在一个字符串中以传递到JSON.parse()

jsonStr = '{"name.regex" : "/^\s*.{1,500}\s*$/"}'
console.log(JSON.parse(jsonStr))

但是,我会假装你从一个假定有效的JSON字符串中间的某处复制粘贴的内容,然后回答问题。

错误发生在第170行,因为当编译器不再能够生成对其处理的字符的有效解释时。这并不一定意味着违规代码在第170行。

您可能在您尝试解析的字符串中的某个位置缺少'",或者甚至在调用JSON.parse()之前的代码块中。{/ p>

这是Chrome开发者控制台中成功解析的直接复制粘贴。

JSON.parse('{"name.regex": "/^\s*.{1,500}\s*$/"}')

>{name.regex: "/^s*.{1,500}s*$/"}

没有错误。所以这个bug在别处。

aristotll的评论中所述,如果您仍然无法找到它,则应发布整个json字符串。