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 回答