域验证的正则表达式
问题描述:
我需要一个正则表达式来验证以下域类型。域验证的正则表达式
www.google.co.in
google.co.in
google.com
subdomain.domain.com
正则表达式应该接受所有这些类型。
答
您不妨花点时间思考一下,普通表达是否真的是您工作的首选工具。域名受限于正则表达式与它们相匹配的那种麻烦(读作:维护的噩梦)。
话虽如此,尝试
^(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
显示你已经尝试过的代码。 – Sparky 2014-10-29 16:24:19