プロが教える店舗&オフィスのセキュリティ対策術

var regUrl = new RegExp("^http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?$");

IEで以上の正規表現の部分で「文字セットの範囲が不正です」のエラーが
出るのですが、どこを修正すればよいでしょうか?

お願いいたします。

A 回答 (1件)

文字列の中に正規表現を書くときはバックスラッシュの扱いに注意が必要です。

例えば、単語文字一文字を表す正規表現「\w」を文字列の中に書くには、"\\w" のようにバックスラッシュが二つ必要です。

もう一つ、[\w- ./?%&=] ではハイフンがエスケープされていないのでエラーになります。ハイフンを括弧内の端っこに置くか、バックスラッシュを付けてください。

ところで、JavaScript で正規表現を書くときは、文字列で書くよりも正規表現リテラルを使ったほうがバックスラッシュに関する間違いが少なくてすみますよ。
    • good
    • 0
この回答へのお礼

>正規表現リテラルを使ったほうが
こちらのほうがいいですね。ありがとうございました!

お礼日時:2006/03/09 15:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!