読者です 読者をやめる 読者になる 読者になる

(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さん。