A-A+

PHP正则验证类(PHP5)

2012年05月19日 PHP技术文章 暂无评论 阅读 266 views 次

关于正则验证,在php中已经应用得非常广泛了,比如我们常见的验证用户名,验证密码,验证email,验证身份证,验证座机等,这些验证中都少不了正则验证,正则表达式的语法本身是非常繁琐的,尤其是语法里的句句点点,但如果我们把正则表达式用顺了,对于编程来说是一个很大的帮助,你会发现自己的工作效率大大的提高了。

如果自己还不能够很好的去编写php正则表达式,那么就可以去收集一些已经写好的正则表达式,因为正则表达式的验证已经很成熟了,网上有许多成型正则验证,直接拿来用可以提高自己的编程效率,下面是一个网上收集来的 php 正则验证类,源码不是很多,可以自己作补充。

<?php   
/**  
*PHP正则验证类  
*/  
class regExp   
{   
    //去除字符串空格   
    static function strTrim($str)   
    {   
        return preg_replace("/s/","",$str);   
    }   
    //验证用户名   
    static function userName($str,$type,$len)   
    {   
        $str=self::strTrim($str);   
        if($len<strlen($str))   
        {   
            return false;   
        }else{   
            switch($type)   
            {   
                case "EN"://纯英文   
                    if(preg_match("/^&#91;a-zA-Z&#93;+$/",$str))   
                    {   
                        return true;   
                    }else{   
                        return false;   
                    }   
                    break;   
                case "ENNUM"://英文数字   
                    if(preg_match("/^&#91;a-zA-Z0-9&#93;+$/",$str))   
                    {   
                        return true;   
                    }else{   
                        return false;   
                    }   
                    break;   
                case "ALL":    //允许的符号(|-_字母数字)   
                    if(preg_match("/^&#91;|-_a-zA-Z0-9&#93;+$/",$str))   
                    {   
                        return true;   
                    }else{   
                        return false;   
                    }   
                    break;   
            }   
        }   
    }   
  
    //验证密码长度   
    static function passWord($min,$max,$str)   
    {   
        $str=self::strTrim($str);   
        if(strlen($str)>=$min && strlen($str)<=$max)   
        {   
            return true;   
        }else{   
            return false;   
        }   
    }   
  
    //验证Email   
    static function Email($str)   
    {   
        $str=self::strTrim($str);   
           
        if(preg_match("/^(&#91;a-z0-9_&#93;|\-|\.)+@((&#91;a-z0-9_&#93;|\-)+\.){1,2}
&#91;a-z&#93;{2,4}$/i",$str))   
        {   
            return true;   
        }else{   
            return false;   
        }   
           
    }   
  
    //验证身份证(中国)   
    static function idCard($str)   
    {   
        $str=self::strTrim($str);   
        if(preg_match("/^(&#91;0-9&#93;{15}|&#91;0-9&#93;{17}&#91;0-9a-z&#93;)$/i",$str))   
        {   
            return true;   
        }else{   
            return false;   
        }   
    }   
  
    //验证座机电话   
    static function Phone($type,$str)   
    {   
        $str=self::strTrim($str);   
        switch($type)   
        {   
            case "CHN":   
                if(preg_match("/^(&#91;0-9&#93;{3}|0&#91;0-9&#93;{3})-&#91;0-9&#93;{7,8}$/
",$str))   
                {   
                    return true;   
                }else{   
                    return false;   
                }   
                break;   
            case "INT":   
                if(preg_match("/^&#91;0-9&#93;{4}-(&#91;0-9&#93;{3}|0&#91;0-9&#93;{3})-&#91;0-9&#93;
{7,8}$/",$str))   
                {   
                    return true;   
                }else{   
                    return false;   
                }   
                break;   
        }   
    }   
}   
  
$str="008-010-2711204";   
if(regExp::Phone("INT",$str))   
{   
    echo "ok";   
}else{   
    echo "no";   
}   
?>

给我留言