正規表現の書き方が間違っています。
Range out of order in character class特に忘れやすいのがエスケープ記号 \ を 2 回書くことです。
var reg1 = /^([A-Z_\-\.])/ // こちらは通る var reg2 = new RegExp('^([A-Z_\-\.])'); // エラー// で定義する場合1回ですが、new RegExp() で書く場合は、
文字列として 1 度解釈されるのでエスケープ記号が消えないように \\ と 2 回書く必要があります。
var reg2 = new RegExp('^([A-Z_\\-\\.])');以前、ブログで書いたはずなのですがすっかり忘れていて、
結構詰んでしまいました。
0 件のコメント:
コメントを投稿