2013-02-21 48 views
0

我有以下的正则表达式验证Web URL JavaScript来接受URL输入google.com

RegExp("((http|https)(:\/\/))?([a-zA-Z0-9]+[.]{1}){2}[a-zA-z0-9]+(\/{1}[a-zA-Z0-9]+)*\/?", 
    "i"); 

工作正常,但显示的url下面的模式为无效

如: “google.com”

我感谢你的回答。

+0

@Chris -1。你仔细看过正则表达式吗? '((http | https)(://))?'......表示**可选**。 – 2013-02-21 06:06:11

+0

你想要匹配什么?也许我们可以找到另一个(更短更清晰的)正则表达式。 – 2013-02-21 06:09:15

+0

我也希望www可选,但现在我得到了答案,我用这个^(https?:// | www \\。)?[\ .A-Za-z0-9 \ - ] + \\。[a-zA -Z] {2,4} – Deeyo 2013-02-21 23:11:20

回答

1

您的密码至少需要something.something.somethingstuff.google.com。将{2}交易+以允许二级域名。

RegExp("((http|https)(://))?([a-zA-Z0-9]+[.]{1})+[a-zA-z0-9]+(/{1}[a-zA-Z0-9]+)*/?", "i"); 

我要补充的是有关于这个正则表达式的其他几个...古怪(如使用{1}[.]),它不考虑一些有效的领域(如something-something.com)。此外,你可以在JS中使用正则表达式文字,如var regex = /just a regex/。所以我推荐一些阅读。

+0

感谢您花时间回复。我做了^(https?:// | www \\。)?[\ .A-Za-z0-9 \ - ] + \\。[a-zA-Z] {2,4}但我想它接受的URL前面的空间,以防用户错误地键入空间b4 url​​。我知道它的*,但我应该如何把它放在我提到的模式中? – Deeyo 2013-02-21 23:18:11

+0

哦,哦!它的(^ | [])感谢你的时间。 – Deeyo 2013-02-21 23:23:54

+0

而不是'(^ | [])',这是不正确的,使用'^?'或'^ *'。 – 2013-02-25 14:59:57