+ -
当前位置:首页 → 问答吧 → PHP正则验证类(PHP5)

PHP正则验证类(PHP5)

时间:2007-06-01

来源:互联网

没事自己写着玩的,有兴趣的朋友继续扩展啊,别忘了发我一份哦,哈哈谢谢~

[email protected]
复制PHP内容到剪贴板
PHP代码:

<?php
/**
 *PHP正则验证类
 *Code by T.T.R
 *[url]http://www.Gx3.cn[/url] [url]http://Gx3.cn[/url]
 *QQ:252319874
 */

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("/^[a-zA-Z]+$/",$str))
                    {
                        return true;
                    }else{
                        return false;
                    }
                    break;
                case "ENNUM"://英文数字
                    if(preg_match("/^[a-zA-Z0-9]+$/",$str))
                    {
                        return true;
                    }else{
                        return false;
                    }
                    break;
                case "ALL":    //允许的符号(|-_字母数字)
                    if(preg_match("/^[\|\-\_a-zA-Z0-9]+$/",$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("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.){1,2}[a-z]{2,4}$/i",$str))
        {
            return true;
        }else{
            return false;
        }
        
    }

    //验证身份证(中国)
    static function idCard($str)
    {
        $str=self::strTrim($str);
        if(preg_match("/^([0-9]{15}|[0-9]{17}[0-9a-z])$/i",$str))
        {
            return true;
        }else{
            return false;
        }
    }

    //验证座机电话
    static function Phone($type,$str)
    {
        $str=self::strTrim($str);
        switch($type)
        {
            case "CHN":
                if(preg_match("/^([0-9]{3}|0[0-9]{3})-[0-9]{7,8}$/",$str))
                {
                    return true;
                }else{
                    return false;
                }
                break;
            case "INT":
                if(preg_match("/^[0-9]{4}-([0-9]{3}|0[0-9]{3})-[0-9]{7,8}$/",$str))
                {
                    return true;
                }else{
                    return false;
                }
                break;
        }
    }
}

$str="008-010-2711204";
if(regExp::Phone("INT",$str))
{
    echo "ok";
}else{
    echo "no";
}

?>

作者: T.T.R   发布时间: 2007-06-01

不错!支持!

作者: changxilong   发布时间: 2007-06-01

做个标记,.以后要用时好找

作者: dmkf   发布时间: 2007-06-02

不错不错...MARK...

作者: thaiki   发布时间: 2007-06-02

有一事不明,这种验证为什么不用javascript做,把变量传到服务器端做验证不加重服务器负担么?而且视觉上会有延迟,就算用ajax能缓解视觉上的时间延迟,可是还是部分的加重了服务器的负担
个人认为还是发一些javascript的相关正则比较实用.

作者: quanhaier   发布时间: 2007-06-07

前端的验证相对于安全性来说比较低吧!

作者: emyshen   发布时间: 2007-06-07

不错!

作者: xlight   发布时间: 2007-06-07

不错,php5的很少见!~~

作者: forest   发布时间: 2007-06-07

这个要支持一哈

作者: VE   发布时间: 2007-06-08

引用:
原帖由 emyshen 于 2007-6-7 04:52 PM 发表
前端的验证相对于安全性来说比较低吧!
的确

简单实用的好东西 支持 拿来用或者学习都很好

作者: wind840619   发布时间: 2007-07-19

引用:
原帖由 quanhaier 于 2007-6-7 10:55 发表
有一事不明,这种验证为什么不用javascript做,把变量传到服务器端做验证不加重服务器负担么?而且视觉上会有延迟,就算用ajax能缓解视觉上的时间延迟,可是还是部分的加重了服务器的负担
个人认为还是发一些javasc ...
所以前端的验证结果,都是可以伪造的。通过非常规方法提交到服务器后端,如果认为经过了前端的验证就放行了,那样问题就大了!

作者: bigname   发布时间: 2008-01-07

引用:
原帖由 quanhaier 于 2007-6-7 10:55 发表
有一事不明,这种验证为什么不用javascript做,把变量传到服务器端做验证不加重服务器负担么?而且视觉上会有延迟,就算用ajax能缓解视觉上的时间延迟,可是还是部分的加重了服务器的负担
个人认为还是发一些javasc ...
这个是你想要的前台JS版本
http://www.phpchina.com/bbs/viewthread.php?tid=27609

作者: T.T.R   发布时间: 2008-01-10

留个记号 对安全性要求高的,先在客户端验证,增加用户友好度,然后在服务器端验证,增加安全性。

作者: hu_bird   发布时间: 2008-01-15

不错不错

作者: j59280871   发布时间: 2008-02-18

收藏了

作者: ct_174880859   发布时间: 2008-02-20

不错,学习

作者: 清竹�w翔   发布时间: 2008-03-27