2013-02-21 22 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