我需要一个正则表达式来验证以下域类型。
www.google.co.in
google.co.in
google.com
subdomain.domain.com
正则表达式应该接受所有这些类型。
答案 0 :(得分:1)
您可能希望对常规表达是否真的是您工作的首选工具有所了解。域名受制于约束条件,这使得正则表达式与它们相匹配很麻烦(读作:维持的噩梦)。
说完这个,试试
^(https://)?(www\.)?[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+){1,2}$
说明:
https
计划www.
前缀缺点:
建议:
使用更简单的表达式来检查基本的句法正确性:
^(http[s]?://)?([^.:/@#]+)(\.[^.:/@#]+)+$
根据需要独立检查微调器约束。当然,绘制分界线的位置有一个主观维度。
建议阅读:
所有适用的RFC。虽然这些是相当技术性的文档,并且通常不易于阅读,但所花费的努力是值得的,因为这些是权威来源。