正则表达式网址无法识别

时间:2014-12-22 06:16:50

标签: javascript regex

我在服务器端有一个正则表达式,用于检查url是否有效:

http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

这项检查对我来说已经足够了。

我想在客户端进行相同的测试。

所以我创建了这个jsfiddle:

http://jsfiddle.net/alonshmiel/LZf7H/1830/

我无法识别正则表达式:

var regex = /http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?/i;

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

你需要逃避所有正斜杠。

> var regex = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/i;
> regex.test("http://myweb.com/api/v1/customer")
true

答案 1 :(得分:1)

您需要转义正斜杠/,因为它将被视为javascript的正则表达式模式的过早结束。

var regex = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/i;

示例:

regex.test("http://test.com")
=> true

regex.test("http://www.test.com")
=> true

regex.test("http://abc.test.com")
=> true

答案 2 :(得分:0)

/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/

试试这个。看看/。看看演示。

https://regex101.com/r/vN3sH3/37