由於潛在的安全性,不建議在沒有正規表示式的情況下驗證網域漏洞和不一致的結果。正規表示式提供了一種強大且標準化的方法來確保準確性。
要使用正規表示式驗證域名,請考慮以下模式:
^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i
此表達式包含多個條件:
改進的網域驗證 PHP 函數:
<code class="php">function is_valid_domain_name($domain_name) { return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name) && preg_match("/^.{1,253}$/", $domain_name) && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)); }</code>
Domain Name | Validation Result |
---|---|
a | Yes |
0 | Yes |
a.b | Yes |
localhost | Yes |
google.com | Yes |
news.google.co.uk | Yes |
xn--fsqu00a.xn--0zwm56d | Yes |
goo gle.com | No |
google..com | No |
google.com | No |
google-.com | No |
.google.com | No |