0

URL の検証に使用できる正規表現を探しています。私はこの男を見つけました:

^(http|ftp|https)://[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$

regexpal を使用してテストしたときはかなりうまくいきましたが、実際に JavaScript にプラグインすると一致しません。 ここでフィドル。

この URL に対してテストしています:

http://s3.amazonaws.com/SomeShow/Podcasts/HouroneofWhatever234.mp3

なぜそれが正規表現で一致するのか、誰でもわかりますが、JavaScriptで使用しようとするとわかりませんか?

4

1 に答える 1

4

正規表現リテラルを使用します。

/^(http|ftp|https):\/\/[\w-]+...$/

(スラッシュが正規表現の終端記号として解釈されないように、スラッシュもエスケープする必要があります)

文字列を使用する場合、バックスラッシュは文字列のエスケープ文字でもあるため、すべてのバックスラッシュをエスケープする必要があります。

new RegExp("^(http|ftp|https)://[\\w-]+...$")

現在の式では、は文字列内の有効なエスケープ シーケンスではないため、"[\w-]+"に変わります。[w]+\w


参照: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions#Creating_a_Regular_Expression

于 2013-05-06T22:57:58.953 に答える