私は有効なJSON文字列を解析する方法を知っています:JSON.parse('{"key" : "value"}')
。JS:文字列をJS Object(** NOT ** ** JSON)に変換する方法は?
しかし、有効なJSオブジェクトはですが、無効なJSONはどうですか:JSON.parse("{ key : 'value'}")
? 上記の例では、スロー:
Uncaught SyntaxError: Unexpected token k in JSON at position 2
私の実際の目的はさらに複雑です。私はJSオブジェクトの文字列を解析したいJSオブジェクトに(JSONによってサポートされていないが、JSでサポートされている)正規表現を含む:
'{ key1 : /val1/g , key2 : /val2/i }'
私は最終的にマングースと、このオブジェクトを使用して、それを使用してドキュメントを検索します:
Model.find({
key1 : /val1/g ,
key2 : /val2/i
})
私はnew RegEx("val1","i")
で/val1/g
を交換し、私のStringにかなり複雑な正規表現を適用しようとしている:
str = str.replace(/\/(.+?)\/(g?i?).+?(?=,|})/g , "new RegExp(`$1`,`$2`)")
.replace()
操作は機能し、私が望むように文字列を変更します。
{ key1 : new RegExp("val1","g") , key2 : new RegExp("val2","i") }
をしかし、私はそれにJSON.parse
を適用しようとすると、new RegEx("val1","i")
が有効な値ではありませんので、それはまだ失敗:それは得られます。
私はこれを言って自分自身が嫌いですが、おそらく 'eval'はあなたが探しているものですか? –
ありがとう、それは確かに、私はそれについて考えなかった。 Evalがあまりにも強力です:) –