欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

javascript與php批量驗(yàn)證類(lèi)

一、javascript:

  1. 代碼:
    /**
    * 批量驗(yàn)證類(lèi)
    * @author [lee] <[<www.dollarphp.com>]>
    * 1、驗(yàn)證是否為空
    * 2、驗(yàn)證數(shù)據(jù)類(lèi)型
    * 3、驗(yàn)證長(zhǎng)度是否達(dá)標(biāo)
    * 4、驗(yàn)證是否符合正則匹配
    */
    function validation(main){
    this.data = ''
    this.msg = new Array()
    this.init = function(){
        for(var i in main){
            this.data = i;
            bool = main[i]['empty'];
            type = main[i]['type'];
            len_arr = main[i]['length'];
            preg = main[i]['preg'];
            this.isEmpty(bool).dataType(type).dataLength(len_arr).pregMach(preg)
        }
    }
    this.isInt = function(val){
        if((typeof(val)=='number')||(val instanceof Number)){
            if(/^\d*$/.test(val)){
                return true
            }else{
                return false
            }
        }else{
            return false
        }
    }
    this.isFloat = function(val){
        if((typeof(val)=='number')||(val instanceof Number)){
            if(/^\d*\.\d*$/.test(val)){
                return true
            }else{
                return false
            }
        }else{
            return false
        }
    }
    this.isString = function(val){
        if((typeof(val)=='string')||(val instanceof String)){
            return true
        }else{
            return false
        }
    }
    this.isBoolean = function(val){
        if((typeof(val)=='boolean')||(val instanceof Boolean)){
            return true
        }else{
            return false
        }
    }
    this.isArray = function(val){
        if(val instanceof Array){
            return true
        }else{
            return false
        }
    }
    this.isObject = function(val){
        if(val instanceof Object && typeof val.length == 'undefined'){
            return true
        }else{
            return false
        }
    }
    this.isEmpty = function (bool){
        var data = this.data;
        if(bool){
            if(data.length == 0){
                var msg = "'"+data+"'不能為空";
                this.msg.push(msg)
            }
        }
        return this
    }
    this.dataType = function (type){
        var data = this.data
        if(type=='bool'){
            if(!this.isBoolean(data)){
                var msg = "'"+data+"'不能為非布爾值";
                this.msg.push(msg)
            }
        }else if(type=='string'){
            if(!this.isString(data)){
                var msg = "'"+data+"'不能為非字符串值";
                this.msg.push(msg)
            }
        }else if(type=='int'){
            if(!this.isInt(data)){
                var msg = "'"+data+"'不能為非整型值";
                this.msg.push(msg)
            }
        }else if(type=='float'){
            if(!this.isFloat(data)){
                var msg = "'"+data+"'不能為非浮點(diǎn)型值";
                this.msg.push(msg)
            }
        }else if(type=='array'){
            if(!this.isArray(data)){
                var msg = "'"+data+"'不能為非數(shù)組值";
                this.msg.push(msg)
            }
        }else if(type=='object'){
            if(!this.isObject(data)){
                var msg = "'"+data+"'不能為非對(duì)象值";
                this.msg.push(msg)
            }
        }
        return this
    }
    this.dataLength = function (len_arr){
        var data = this.data
        if(len_arr){
            var min = Math.abs(len_arr[0]);
            var max = Math.abs(len_arr[1]);
            var isint = this.isInt(data)
            var isfloat = this.isFloat(data)
            var isstring = this.isString(data)
            var isbool = this.isBoolean(data)
            var isarray = this.isArray(data)
            var isobject = this.isObject(data)
            var len = 0
            if(isint){
                len = data.toString().length
            }else if(isfloat){
                var len0 = data.toString().split('.')
                len = len0[1].length
            }else if(isstring){
                len = data.length
            }else if(isarray){
                len = data.length
            }else if(isobject){
                for(var i in data){
                    len++
                }
            }
            if(!(len >= min && len <= max)){
                var msg = "'"+data+"'長(zhǎng)度不能小于"+min+",不能大于"+max;
                this.msg.push(msg)
            }
        }
        return this
    }
    this.pregMach = function (preg){
        var data = this.data
        if(preg){
            if(!preg.test(data)){
                var msg = "'"+data+"'格式不匹配'"+preg+"'";
                this.msg.push(msg)
            }
        }
    }
    this.checkData = function(){
        var msg = this.msg;
        return msg;
    }
    }
    var data = {
        'lee': {
                'empty':true,
                'type':'string',
                'length':new Array(5,20),
                'preg':/^a.*/
            },
        'hello': {
                'empty':false,
                'type':'int',
                'length':new Array(8,20),
                'preg':/^a\s*/
            }
    }
    var validation = new validation(data)
    validation.init()
    var ret = validation.checkData()
    console.log(ret);
  2. 輸出:
    [ '\'lee\'長(zhǎng)度不能小于5,不能大于20',
    '\'lee\'格式不匹配\'/^a.*/\'',
    '\'hello\'不能為非整型值',
    '\'hello\'長(zhǎng)度不能小于8,不能大于20',
    '\'hello\'格式不匹配\'/^a\\s*/\'' ]

    二、php:

  3. 代碼:
    <?php
    /**
    * 批量驗(yàn)證類(lèi)
    * @author [lee] <[<www.dollarphp.com>]>
    * 1、驗(yàn)證是否為空
    * 2、驗(yàn)證數(shù)據(jù)類(lèi)型
    * 3、驗(yàn)證長(zhǎng)度是否達(dá)標(biāo)
    * 4、驗(yàn)證是否符合正則匹配
    */
    class validation{
    private $data;
    private $msg = array();
    public function __construct($main){
        foreach($main as $k=>$v){
            $this->data = $k;
            $bool = $v['empty'];
            $type = $v['type'];
            $len_arr = $v['length'];
            $preg = $v['preg'];
            $this->isEmpty($bool)->dataType($type)->dataLength($len_arr)->pregMath($preg);
        }
    }
    private function isEmpty($bool){
        $data = $this->data;
        if($bool){
            if(empty($data)){
                $msg = "'{$data}'不能為空";
                array_push($this->msg,$msg);
            }
        }
        return $this;
    }
    private function dataType($type){
        $data = $this->data;
        if($type=='bool'){
            if(!is_bool($data)){
                $msg = "'{$data}'不能為非布爾值";
                array_push($this->msg,$msg);
            }
        }elseif($type=='string'){
            if(!is_string($data)){
                $msg = "'{$data}'不能為非字符串值";
                array_push($this->msg,$msg);
            }
        }elseif($type=='int'){
            if(!is_int($data)){
                $msg = "'{$data}'不能為非整型值";
                array_push($this->msg,$msg);
            }
        }elseif($type=='float'){
            if(!is_float($data)){
                $msg = "'{$data}'不能為非浮點(diǎn)型值";
                array_push($this->msg,$msg);
            }
        }elseif($type=='array'){
            if(!is_array($data)){
                $msg = "'{$data}'不能為非數(shù)組值";
                array_push($this->msg,$msg);
            }
        }elseif($type=='object'){
            if(!is_object($data)){
                $msg = "'{$data}'不能為非對(duì)象值";
                array_push($this->msg,$msg);
            }
        }
        return $this;
    }
    private function dataLength($len_arr){
        $data = $this->data;
        if($len_arr){
            $min = abs($len_arr[0]);
            $max = abs($len_arr[1]);
            $type = gettype($data);
            if($type=='string'){
                $len = strlen($data);
            }elseif($type=='integer'){
                $len = strlen($data);
            }elseif($type=='double'){
                $len0 = explode('.',$len0);
                $len = strlen($len0[1]);
            }elseif($type=='array'){
                $len = count($data);
            }elseif($type=='object'){
                $data = (array)$data;
                $len = count($data);
            }
            if(!($len >= $min && $len <= $max)){
                $msg = "'{$data}'長(zhǎng)度不能小于{$min},不能大于{$max}";
                array_push($this->msg,$msg);
            }
        }
        return $this;
    }
    private function pregMath($preg){
        $data = $this->data;
        if(!empty($preg)){
            if(!preg_match($preg,$data)){
                $msg = "'{$data}'格式不匹配'{$preg}'";
                array_push($this->msg,$msg);
            }
        }
    }
    public function checkData(){
        $msg = $this->msg;
        return $msg;
    }
    }
    $data = array(
        'lee'=>array(
                'empty'=>true,
                'type'=>'string',
                'length'=>array(5,20),
                'preg'=>'/^a.*/'
            ),
        'hello'=>array(
                'empty'=>false,
                'type'=>'int',
                'length'=>array(8,20),
                'preg'=>'/^a\s*/'
            )
    );
    $validation = new validation($data);
    $ret = $validation->checkData();
    var_dump($ret);
  4. 輸出:
    array(5) {
    [0]=>
    string(41) "'lee'長(zhǎng)度不能小于5,不能大于20"
    [1]=>
    string(28) "'lee'格式不匹配'/^a.*/'"
    [2]=>
    string(28) "'hello'不能為非整型值"
    [3]=>
    string(43) "'hello'長(zhǎng)度不能小于8,不能大于20"
    [4]=>
    string(31) "'hello'格式不匹配'/^a\s*/'"
    }

標(biāo)題名稱(chēng):javascript與php批量驗(yàn)證類(lèi)
文章轉(zhuǎn)載:http://www.chinadenli.net/article20/pechjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司微信公眾號(hào)網(wǎng)站收錄外貿(mào)建站手機(jī)網(wǎng)站建設(shè)做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)