(Java|ECMA)scriptでのString#match(), String#replaceの正規表現
String#match(),String#replace()に指定する正規表現に関して、変数を使用する場合。
var MATCH_REGEX = '^http:\/\/www\.example\.jp\/'; var REPLACE_REGEX = 'http:\/\/www\.example\.jp\/'; var url = '....'; .... if (url.match(MATCH_REGEX)) { alert(url.replace(REPLACE_REGEX, "")); } ....
つまり、変数で、'/..../'としてもうまく行かない。'/'はいらない。また、String#replace()では'^'とか使えないみたい。
.... if (url.match(/^http:\/\/www\.example\.jp\//g)) { alert("ok"); } ....
直接書いていると'/..../'は大丈夫みたいなんだけど。
追記:
ついさっき、はてブみたら、 http://d.hatena.ne.jp/koseki2/20080312/jsref なものがあった。chm形式のjavascriptリファレンス。とても使える。これに書いてあったが、var MATCH_REGEX = /^http:\/\/www\.example\.jp\//; ....とするといいみたい。感謝>id:koseki2さん。