JSON.stringify
そこで、正規表現を空のオブジェクトリテラルに縮約することに興味を持ちました(フィドル):
JSON.stringify(/^[0-9]+$/) // "{}"
この動作は想定どおりでしょうか? RegExp はシリアル化するプロパティを持たないオブジェクトであることはわかっています。とはいえ、日付もオブジェクトであり、JSON.stringify()
意味のある文字列を生成することができます。
JSON.stringify(new Date) // "2014-07-03T13:42:47.905Z"
JSON が を使用することで RegExp に同様の配慮を与えることを期待していました。RegExp.prototype.toString()
ベストアンサー1
もし興味があるなら、良い回避策があります。現在の動作は正しいとは思いません。たとえば、インスタンスは であり、 JSON 表現もありませんが、Date
のような空のオブジェクトにはシリアル化されません。RegExp
object
RegExp.prototype.toJSON = RegExp.prototype.toString;
// sample
var foo = { rgx: /qux$/ig, date: new Date }
JSON.stringify(foo);
//> {"rgx":"/qux$/gi","date":"2014-03-21T23:11:33.749Z"}"