我需要使用PHP验证域名
只允许使用此格式:google.com
,subdomain.stack-overflow.org
等
它应该只允许 - (如果是特殊字符)
不应允许其他格式:http, https,?,/index.php,www.
等,不允许这些格式。
我也不想允许:localhost,mydomain.com
我尝试过:FILTER_VALIDATE_URL
但它接受http
等。
我也试过这样的正则表达式:[a-z0-9-]+(.[a-z0-9-]+)
但它允许ex:stackoverflow
(没有.org
)。
请帮忙。
感谢。
答案 0 :(得分:1)
你的正则表达几乎是正确的。只有.
是“任何角色”的缩写,而不仅仅是“。”。所以,试试这个正则表达式:
/([0-9a-z-]+\.)?[0-9a-z-]+\.[a-z]{2,7}/
请记住,引入了新的顶级域名。他们不使用拉丁字符。看看http://many.at/idntlds/。
关于排除“mydomain.com”:在应用正则表达式后,您必须检查这一点。