本帖最后由 zyc900329 于 2011-10-07 21:11:14 编辑

解决方案 »

  1.   

    [a-zA-Z0-9]匹配字母和数字
      

  2.   


    $str='www.china.com';
    $str2='china.com';
    $str3='我china.com';
    echo matchdomain($str);//www.china.com
    echo matchdomain($str2);//china.com
    echo matchdomain($str3);//china.com
    //=============================
    function matchdomain($domain){
    preg_match('/(([a-z0-9](w|-){0,61}?[a-z0-9]|[a-z0-9]).){1,}(aero|arpa|asia|biz|cat|com|coop|co|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z])(.[a-z][a-z]){0,1}/', $domain, $matches);
    return $matches[0];
    }
      

  3.   


    符号好像没有过滤好
    假如这样
    <?php
    $str='www.china.com';
    $str2='我.china.com';
    $str3='我[email protected]';
    echo matchdomain($str);//www.china.com
    echo matchdomain($str2);//china.com
    echo matchdomain($str3);//china.com
    //=============================
    function matchdomain($domain){
    preg_match('/(([a-z0-9](w|-){0,61}?[a-z0-9]|[a-z0-9]).){1,}(aero|arpa|asia|biz|cat|com|coop|co|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z])(.[a-z][a-z]){0,1}/', $domain, $matches);
    return $matches[0];
    }?>$str3就不行了... 麻烦再帮忙写下  域名里任何符号都不允许 只允许“.” “-”
      

  4.   

    [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
      

  5.   

    这个不是正则的问题了自己处理一下不就可以了吗?养成自己尽量思考的习惯
    $StrArray=array('www.china.com','china.com','我是china.com');foreach ($StrArray as $value){
    if (matchdomain($value)){
    echo $value;
    }
    }//=============================
    function matchdomain($domain){
    preg_match('/(([a-z0-9](w|-){0,61}?[a-z0-9]|[a-z0-9]).){1,}(aero|arpa|asia|biz|cat|com|coop|co|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z])(.[a-z][a-z]){0,1}/', $domain, $matches);
    if (strlen($domain)==strlen($matches[0])){
    return true;
    }
    return false;
    }
      

  6.   

    不好意思  本来正则表达式就不太懂 现在又赶时间
    您给出的这段代码还是不能过滤其他符号
    比如$StrArray=array('www.china.com','[email protected]','我是china.com');
    麻烦帮忙看下
      

  7.   

    没留意看 
    function matchdomain($domain){
    preg_match('/(([^@a-z0-9](w|-){0,61}?[a-z0-9]|[a-z0-9]).){1,}(aero|arpa|asia|biz|cat|com|coop|co|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z])(.[a-z][a-z]){0,1}/', $domain, $matches);
    if (strlen($domain)==strlen($matches[0])){
    return true;
    }
    return false;
    }
      

  8.   

    简单点得function matchdomain($domain){
        preg_match('/[a-z0-9\-\.]+/i',$domain,$matches);
        if (strlen($domain)==strlen($matches[0])){
            return true;
        }
        return false;
    }