php preg_match 验证域名

问题描述 投票:0回答:4

我想验证一个域。表达式只能采用以下格式。

   anywordwithoutspace.any

这是我的代码

<?php
function validatereg($str1) {
    //validate domain
    if(preg_match('/^([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i', $str1) {
        //valid domain
    }
    else {
        //not a valid domain
    }
}
?>

我不确定它是否正确。另请注意,句点(“任意”)后面可以是任意字母,最多 4 个字母。

提前致谢。

php regex preg-match
4个回答
1
投票

您最好将 filter_varFILTER_VALIDATE_URL:

一起使用
if (filter_var('http://example.com', FILTER_VALIDATE_URL)) {
    echo "Domain is valid\n";
}

0
投票
if(!preg_match("/^([A-Za-z0-9-]+)([\.]{1})([A-Za-z0-9]+)([\.]{0,})([A-Za-z0- 
   9]*)$/i", $domain)){
   $errors[] = "Domain is invalid";
}

-1
投票
 if (preg_match("!"#$%&\'()*+,-./@:;<=>[\\]^_`{|}~", $myString)) 
    {
       //valid url
    }

这应该可以...


-2
投票
<?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) //valid chars check
            && preg_match("/^.{1,253}$/", $domain_name) //overall length check
            && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)   ); //length of each label
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.