素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

/a/gみたいな文字列から正規表現オブジェクトを作る

追記:動いていなかった。下のコードは修正済み。

RegExp.parse=function(str){
	var [,pattern,flags]=str.split(/^\/|\/(?=[igmy]*$)/);
	return new RegExp(pattern,flags);
}
var re=RegExp.parse('/foo\/bar\\\\baz[^/]/ig');
'foo/Bar\\baz-foo/Bar\\baz-'.match(re);//["foo/Bar\baz-", "foo/Bar\baz-"]

普通にevalする方法だと、正規表現以外も実行されちゃうから駄目。