javascriptで文字列→正規表現
弾さんはこんな風に
String.prototype.quotemeta = function(){ return this.replace(/([^0-9A-Za-z_])/g, '\\$1'); }
書いてましたが(404 Blog Not Found:javascript - String.prototype.quotemeta() があればいいんじゃね?)
こっち( 文字列から正規表現を生成するときのメモ - IT戦記)はid:amachangのやつ
もう
String.prototype.toRegExp = function(){ try{ return new RegExp(this.replace(/([^0-9A-Za-z_])/g, '\\$1')); }catch(ex){ return false; } } var pat = 'hoge'; var str = 'hogefuga'; if(str.match(pat.toRegExp())){ alert('match'); }
こんな風にすればよくね?
一歩進んで
っていうか,いっそ
//native codeを退避 String.prototype._match = String.prototype.match //作り直し String.prototype.match = function(regexp){ if(typeof regexp == 'string'){ return this._match(regexp.toRegExp()); }else{ return this._match(regexp); } }
こんな風にすればよくね?
**って
していいわけないべ