2

为我工作的开发人员编写了一个正则表达式,用于在用户输入 url 时检查有效 url。到目前为止,它运行得非常好,除了它不能识别 IP 地址。

url = url.match(/(http\:\/\/)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\S*)?/)

正确的:

Given: http://www.mywebsite.com/index.cfm?do=something
Result: http://www.mywebsite.com/index.cfm?do=something

不正确:

Given: http://64.200.10.50/index.cfm?do=something
Result: http://index.cfm?do=something

Should be: http://64.200.10.50/index.cfm?do=something

我将如何修改正则表达式以考虑 IP 地址?

谢谢

4

1 回答 1

4

简单的解决方案:只允许除 / 和 https:// 和第一个 / 之间的空格之外的所有内容。这样,您还将支持单级域名、ipv6 地址等

/^https?\:\/\/[^\/\s]+(\/.*)?$/
于 2012-07-05T16:50:30.633 回答