2017-08-30 55 views
0

解析正則表達式我有問題解析JSON如下如何使用JSON.parse

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

我收到以下異常

Uncaught SyntaxError: Unexpected token ' in JSON at position 170 
+1

如果你把整個json字符串放在你的問題中會更好。 – aristotll

回答

0

我認爲它的逃生焦炭 更改爲

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

工作

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"; 

輸出:

正常:[ 「」, 「 '棒'」, 「\」 巴茲\ 「」, 「& blong &」, 「\ u00e9」]

標籤: [ 「\ u003Cfoo \ u003E」, 「 '欄'」, 「\」 巴茲\ 「」, 「& blong &」, 「\ u00e9」]

APOS: 「」, 「\ u0027bar \ u0027」, 「\」baz \「」,「& blong &」,「\ u00e9」]

QUOT: 「」, 「 '棒'」, 「\ u0022baz \ u0022」, 「& blong &」, 「\ u00e9」]

放大器:[ 「」, 「 '棒」',」 \ 「巴茲\」 「 」\ u0026blong \ u0026「, 」\ u00e9「]

的Unicode: 」「, 」 '棒'「, 」\「 巴茲\ 」「,」 & blong & 「」 é 「]

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

0

​​3210無效JSON。如果這實際上是你要解析的東西,你需要把它放在一個塊中使其有效,然後將該塊放入一個字符串中以傳入JSON.parse()

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

但我要出去,你複製一個所謂有效的JSON字符串中間粘貼該從什麼地方的假設下肢體和答案。

錯誤發生在第170行,因爲那時編譯器不再能夠生成它處理的字符的有效解釋。這並不一定意味着有問題的代碼是上線170

你可能錯過了'"某處你試圖解析,或者甚至在代碼塊調用JSON.parse前的字符串中( )。

這是Chrome開發控制檯中成功解析的直接複製粘貼。

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

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

沒有錯誤。所以這個錯誤在別處。

正如在aristotll的評論中指出的,如果您仍然無法找到它,則應該發佈整個json字符串。