2014-10-29 112 views

回答

1

您不妨花點時間思考一下,普通表達是否真的是您工作的首選工具。域名受限於正則表達式與它們相匹配的那種麻煩(讀作:維護的噩夢)。

話雖如此,嘗試

^(https://)?(www\.)?[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+){1,2}$ 

說明:

  • 可選https面前方案
  • 可選www.前綴
  • 在域名每個子至少有2個字符(不由標準授權但某些註冊管理機構要求至少部分子域級別)

缺點:

  • 域名相匹配與給定的IP 2個或3段僅
  • 匹配的域僅不會忽略
  • 不匹配允許的所有特殊字符。特別是,不能正常排除前/後的子域連字符
  • 長度的限制不會檢查頂級域的
  • 有效性不檢查
  • 有效的IP地址的規格不檢查
  • 沒有先進的正則表達式功能

建議:

使用更簡單的表達,以檢查基本語法的正確性:

^(http[s]?://)?([^.:/@#]+)(\.[^.:/@#]+)+$ 

根據需要獨立檢查微調約束。當然,在哪裏畫分界線還有一個主觀方面。

建議閱讀:

所有適用的RFC。雖然這些都是相當技術性的文件,並且往往不易讀,但花費的努力是值得的,因爲這些是權威來源。

+0

你可以給我jquery ..我使用jquery驗證引擎 – 2014-10-30 06:14:51