快捷搜索:   文件 java linux

PHP匹配正则自动验证

/**
 * [is_string_regular_type 正则自动验证传入数据]
 * @E-mial wuliqiang_aa@163.com
 * @TIME   2017-08-25
 * @WEB    http://blog.iinu.com.cn
 * @param  [string]  $keyword [传入的关键字要检索的范围]
 * @param  [string]  $string  [需要用正则匹配的内容]
 * @return boolean          [返回数组状态]
 */
function is_string_regular_type($keyword,$string){
    //中文关键字
    $chinaKeyword = array('CNM','CNQJ','草','艹','草泥马','操你妈','草你全家','全四家','死去吧','死全家','死吧','游戏','马云','马化腾','房事','丰满','人流','美胸','男人','增粗','堕胎','下班','整容','妊娠','男性','女','情趣','肛裂','性趣','鼻炎','美女','功夫汤','爆','白带','老婆','催情','紧','丰胸','女人','女性','胸','阿波罗','癌症','满足','老总','狐臭','糜烂','成人','痔疮','勃起','医疗','红肿','尖叫','整形','早泄','生殖器','小儿脑瘫','激情','又粗又大','排卵','性交','痛经','性福','避孕','maxman','妇科病','性','计生','瘦身','无痛','个人护理','前列腺','射精','包茎','乳腺','夜','偷偷','包皮','硬','停经','阴茎','公关','偷看','透视','减肥','考试设备','缩阴','遗精','性病','阳萎','聚光体','妇科','男科','老公','泌尿','阳痿','增高','持久','白领','阴道','美容','增大','意外怀孕','牛逼','抽奖','摇奖','情侣','三点','小弟弟','黄色','邪恶','丝袜','成人','18禁','18禁止','十八禁止','事变','狗日的','垃圾','废物','傻逼','煞笔','傻比','沙比','蠢猪','婊子','贱人','贱货','贱逼','色女','母狗','跳蛋','自慰','手淫','射精','内射','颜射','乳射','操你','草你','日你','日死你','打炮','打野炮','插入','插你','插逼','狂插','干你','操逼','肏逼','日逼','淫逼','美臀','胴(dòng)体','阴毛','美穴','阴户','阴毛','阴道','人民大会堂','任命大会堂','阴唇','小穴','咪咪','奶子','乳房','乳头','子宫','阴茎','阴囊','阳具','龟头','肉棒','鸡鸡','小鸡鸡','下体','暴动','恐怖','自杀','投毒','破坏','叛乱','屠杀','虐待','杀人','抢劫','走私','贿赂','偷渡','强奸','轮奸','轮暴','操死','干死你','镇压','法院','检察院','起诉','省长','公安','民警','警察','武警','人民','政府','中南海','人大','总理','人民代表大会','政协','政治协商会议','共产党','国民党','民主党','佛教','伊斯兰','基督教','安拉','耶稣。帝国主义','军国主义','独裁','主义','独裁主义','禽流感','台湾','台独','台盟','藏独','蒙独','达赖','喇嘛','法轮','法论','自焚','钓鱼岛','希特勒','法西斯','黑社会','日本','美国','俄国','朝鲜','抗日','小泉','天皇','国军','共军','毛泽东','毛主席','刘少奇','朱德','周恩来','周总理','邓小平','江泽民','江主席','胡锦涛','胡主席','习近平','朱镕基','朱总理','温家宝','温总理','蒋介石','蒋经国','连战','华国锋','赵紫阳','李鹏','李克强','叶剑英','林彪','江青','金正日','金日成','国家级','世界级','最高级','最佳','国家级产品','全网销售第一','全球首发','全国首家','全网首发','等级工艺','NO.1','Top1','极致','永久','掌门人','领袖品牌','赌博','博彩类','水果机','老虎机','大富翁游戏','彩票','六合彩','特码','军警用武器装备','色情类:丝足按摩','情趣养生','保健类','伟哥','延时药剂','印度神油','ATT黑牛','警用','枪支类','警徽','警用类产品','各类枪支','仿真枪','弩','手铐','电子手铐','审讯记录系统','审讯椅','审讯设备','发票','车票类:发票','代开发票','跟踪','调查类','私家侦探','婚外情调查','跟踪监视','债务','催讨类','债务催收','要账','债务清算','催账调查','套卡','套现类','信用卡代还','社保卡套现','基金投资套现','违章','非法类','卫星电视','电话安装','信号干扰器','妨碍交通管理产品','反雷达测速仪','地磅遥控器','干扰器','解码器','银行卡复制设备','股票债券等股权转让','黄页','企业名录','民间借贷',);
    //验证格式
    $type_array = array(
        //用户名
        'username' => array(
            //格式类型验证
            'type'   => array(
                'code'    => '/^\w+((-\w+)|(\.\w+))*\w+[A-Za-z0-9]/',
                'success' => '用户名验证格式正确',
                'error'   => '仅支持字母、数字和-、_、@、.的组合',
            ),
            //格式类型长度验证
            'number' => array(
                'code'    => '/^\w+((-\w+)|(\.\w+))*\w+[A-Za-z0-9]{4,20}/',
                'success' => '用户名长度正确',
                'error'   => '帐号建议4~32个字符',
            ),
        ),
        //邮箱
        'email' => array(
            //格式类型验证
            'type'   => array(
                'code' => '/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/',
                'success' => '邮箱格式正确',
                'error'   => '邮箱格式不正确',
            ),
        ),
        //密码
        'password' => array(
            //格式类型验证
            'type'   => array(
                'code' => '/^[0-9a-zA-Z_!!@#$%^&*()]{0,20}$/',
                'success' => '密码格式正确',
                'error'   => '密码格式不正确',
            ),
            //格式类型长度验证
            'number' => array(
                'code'    => '/^\w+((-\w+)|(\.\w+))*\w+[A-Za-z0-9]{4,20}/',
                'success' => '密码长度正确',
                'error'   => '密码应6~20个字符',
            ),
        ),
        //手机号
        'phone' => array(
            //验证格式
            'type'   => array(
                'code' => '/^1[345678]\d{9}$/',
                'success' => '手机号格式正确',
                'error'   => '手机号格式与长度不正确',
            ),
        ),
        //企业名称
        'companyname' => array(
            //验证是否存在非法汉字
            'chinese'   => array(
                'code' => $chinaKeyword,
                'success' => '企业名称正确',
                'error'   => '企业名称存在非法汉字',
            ),
            //格式类型长度验证
            'number' => array(
                'code'    => '/^[\x{4e00}-\x{9fa5}][A-Za-z0-9-_()-()]{4,40}$/u',
                'success' => '企业名称长度格式正确',
                'error'   => '企业名称应为由中英文、数字及-、_、()、()组成,应为4-40个字符',
            ),
        ),
        //真实姓名
        'realname' => array(
            //验证是否存在非法汉字
            'chinese'   => array(
                'code' => $chinaKeyword,
                'success' => '姓名正确',
                'error'   => '姓名存在非法汉字',
            ),
            //格式类型长度验证
            'number' => array(
                'code'    => '/^[\x{4e00}-\x{9fa5}]{2,10}$/u',
                'success' => '姓名格式正确',
                'error'   => '姓名格式不正确',
            ),
        ),
        //昵称
        'nickname' => array(
            //验证是否存在非法汉字
            'chinese'   => array(
                'code' => $chinaKeyword,
                'success' => '昵称正确',
                'error'   => '昵称存在非法汉字',
            ),
            //格式类型长度验证
            'number' => array(
                'code'    => '/.{3,20}/',
                'success' => '昵称格式与长度正确',
                'error'   => '昵称长度应2-6个字符',
            ),//*/
        ),
    );
    //将数组转换为一维,拿出KEY
    foreach($type_array as $k=>$v){
        $type_array_if[] = $k;
    }
    //匹配是否存在该键
    if(in_array($keyword,$type_array_if)){
        foreach($type_array[$keyword] as $k=>$v){
            //汉字验证
            $string = str_replace($v['chinacode'],'*****',$string);
        }
        //存在该关键字
        foreach($type_array[$keyword] as $k=>$v){
            //验证是否非汉字
            if($k != 'chinese'){
                //正则比配
                $preg_match_chek = preg_match($v['code'],$string);
                if($preg_match_chek == 0){
                    //结果为0  代表存在不正确的字符
                    return array('status'=>0,'result'=>$v['error'],'message'=>$string);
                }
            }
        }
        //结果为1  代表字符完全正确
        return array('status'=>1,'result'=>$v['success'],'message'=>$string);
    }else{
        //不存在该关键字
        return array('status'=>1,'result'=>'不存在此验证方法','keyword'=>$keyword,'message'=>$string);
    }
}



您可能还会对下面的文章感兴趣:

头像:

设置头像

x
名称(*):
域名    :
邮箱    :

评论内容(*): 刷新评论 提交评论