- ベストアンサー
JavaScriptでこの正規表現を利用したい
var regUrl = new RegExp("^http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?$"); IEで以上の正規表現の部分で「文字セットの範囲が不正です」のエラーが 出るのですが、どこを修正すればよいでしょうか? お願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
文字列の中に正規表現を書くときはバックスラッシュの扱いに注意が必要です。例えば、単語文字一文字を表す正規表現「\w」を文字列の中に書くには、"\\w" のようにバックスラッシュが二つ必要です。 もう一つ、[\w- ./?%&=] ではハイフンがエスケープされていないのでエラーになります。ハイフンを括弧内の端っこに置くか、バックスラッシュを付けてください。 ところで、JavaScript で正規表現を書くときは、文字列で書くよりも正規表現リテラルを使ったほうがバックスラッシュに関する間違いが少なくてすみますよ。
お礼
>正規表現リテラルを使ったほうが こちらのほうがいいですね。ありがとうございました!