2015-04-29 47 views
-3

我需要驗證此URL的正則表達式:需要的正則表達式的URL模式

壞:

www.*.com 

www.abc* 

*.* 

好:

*abc.com 
*.com 
www.abc.com 
+1

你自己試過了嗎?你能發佈你的解決方案嗎? –

+1

我不是很難在Google –

+0

上找到答案,我嘗試了幾次,但我只能在時間驗證一個答案。 –

回答

1

你可以使用正則表達式,如:

^(www\.)?([a-zA-Z0-9\-]+?)(\.com)$ 

下面是正則表達式的工作原理:

^字符串的開頭相匹配無論是什麼,或字符串字面www.

(www\.)?檢查。

[a-zA-Z0-9\-]匹配任何字母(大寫和小寫),以及數字和連字符。

([a-zA-Z0-9\-]+?)匹配上述一次或多次,並試圖找到最小匹配。

(\.com)從字面上匹配字符串.com

$匹配字符串的末尾。

Here's a live preview of the regex in action上regex101.com

這將允許像URL:

  • www.google.com
  • www.apple.com
  • jojodmo.com
  • 計算器.com
  • 99-FAKE-websites.com

,但不會允許的URL,如:

  • mail.google.com
  • data.stackexchange.com
  • microsoft.net
  • redirect.affiliate.scam.hop.clickbank .gov

如果您希望允許www以外的子域(以及其中多個子域)爲以及允許比.com其他頂級域名,像上面,你可以使用:

^(([\w\-]+\.)+?)?([a-zA-Z0-9\-]+?)(\.[a-zA-Z]{2,})$ 

這改變:

(www\.)?更改爲(([\w\-]+\.)+?)?

  • [\w\-]+匹配任何字母(大寫或小寫),以及數字,連字符和下劃線一次或多次。
  • \.從字面上匹配字符.
  • ([\w\-]+\.)+?匹配上述一次或多次,找到最小匹配。
  • (([\w\-]+\.)+?)?使得上述可選

(\.com)更改爲(\.[a-zA-Z]{2,})

  • \.匹配字符.字面上
  • [a-zA-Z]{2,}匹配任何字母,大寫或小寫,兩次或更多次

如果您還想在regex101.com上添加上面的here's a preview of the new regex