regstr
Version:
JSON.stringify objects with RegExp properties and then JSON.parse json string resulted back into original objects. Converts RegExp object to be serializable - into pair of strings (key,value). Could be used for RegExp being bilaterally stringified and ge
113 lines (104 loc) • 2.74 kB
JavaScript
var regstr=require('regstr').regStr;
var h=regstr;
var v=/asdf/gi;
regstr.streger(v);
regstr.streger(/asdf/gi);
var o = {a:/asdf/gim};
regstr.streger(o);
h.streger([{a:/asdf/gi},/^[+]+cc.*$/gim])
h.streger({ a: /asdf/gi,
b: /^[+]+cc.*$/gim,
ab:[{ bb:/sdfg/mg},/sdf/]
});
var t={a:/asdf/gi,b:/^[+]+cc.*$/gim,ab:[{bb:/sdfg/mg},/sdf/]};
t
var tt= h.streger(t);
tt
var jsntt = JSON.stringify(tt);
jsntt
var tt1=h.reger(jsntt)
tt1
console.log('h.reger(jsntt) made nothing but -');
var jptt1=h.reger(JSON.parse(jsntt));
console.log('returns original-like object:');
jptt1
var tt1_1=h.reger( h.streger({ a: /asdf/gi,
b: /^[+]+cc.*$/gim,
ab:[{ bb:/sdfg/mg},/sdf/] } )
);
tt1_1
// full chain:
var tt1_2=h.reger( JSON.parse( JSON.stringify( h.streger({ a: /asdf/gi,
b: /^[+]+cc.*$/gim,
ab:[{ bb:/sdfg/mg},/sdf/] } )
)));
tt1_2
//
//
var x=h.streger([{a:/asdf/gi},/^[+]+cc.*$/gim]);
x
var xj=JSON.stringify(x);
xj
var yj=JSON.parse(xj)
yj
var y=h.reger(yj)
y
// REPL stdin / stdout
/*
> var regstr=require('regstr').regStr;
undefined
> var h=regstr;
undefined
> var v=/asdf/gi;
undefined
> regstr.streger(v);
{ RE78: 'asdfRE78gi' }
> regstr.streger(/asdf/gi);
{ RE95: 'asdfRE95gi' }
> var o = {a:/asdf/gim};
undefined
>
> regstr.streger(o);
{ aRE36: 'asdfRE36gmi' }
>
> h.streger([{a:/asdf/gi},/^[+]+cc.*$/gim])
[ { aRE44: 'asdfRE44gi' }, { '1RE39': '^[+]+cc.*$RE39gmi' } ]
>
> h.streger({ a: /asdf/gi,
... b: /^[+]+cc.*$/gim,
... ab:[{ bb:/sdfg/mg},/sdf/]
... });
{
ab: [ { bbRE46: 'sdfgRE46gm' }, { '1RE29': 'sdfRE29' } ],
aRE69: 'asdfRE69gi',
bRE88: '^[+]+cc.*$RE88gmi'
}
> var t={a:/asdf/gi,b:/^[+]+cc.*$/gim,ab:[{bb:/sdfg/mg},/sdf/]};
undefined
> t
{ a: /asdf/gi, b: /^[+]+cc.*$/gim, ab: [ { bb: /sdfg/gm }, /sdf/ ] }
> var tt= h.streger(t);
undefined
> tt
{
ab: [ { bbRE43: 'sdfgRE43gm' }, { '1RE91': 'sdfRE91' } ],
aRE32: 'asdfRE32gi',
bRE05: '^[+]+cc.*$RE05gmi'
}
> var jsntt = JSON.stringify(tt);
undefined
> jsntt
'{"ab":[{"bbRE43":"sdfgRE43gm"},{"1RE91":"sdfRE91"}],"aRE32":"asdfRE32gi","bRE05":"^[+]+cc.*$RE05gmi"}'
> var tt1=h.reger(jsntt)
undefined
> tt1
'{"ab":[{"bbRE43":"sdfgRE43gm"},{"1RE91":"sdfRE91"}],"aRE32":"asdfRE32gi","bRE05":"^[+]+cc.*$RE05gmi"}'
> var tt1_1=h.reger( h.streger({ a: /asdf/gi,
... b: /^[+]+cc.*$/gim,
... ab:[{ bb:/sdfg/mg},/sdf/] } )
... );
undefined
> tt1_1
{ ab: [ { bb: /sdfg/gm }, /sdf/ ], a: /asdf/gi, b: /^[+]+cc.*$/gim }
>
*/