JS 正则表达式校验

;
cpic.util = {};
/****
 * 校验
 * @param elementsId
 * @param validateRequired required是否校验(暂存时)
 * @param context
 * @returns {Boolean}
 */
cpic.util.doValidation = function(elementsId, validateRequired, context) {
    if(Object.prototype.toString.call(elementsId)=="[object Array]" && elementsId.length>0) {
        var ele=null;
        var dataValidation=null;
        var validation=null;
        var result = null;
        for(var _i=0;_i<elementsId.length;_i++) {
            if(context) {
                ele = $($("#" + elementsId[_i], context)[0]);
            }else {
                ele = $($("#" + elementsId[_i])[0]);
            }
            dataValidation = ele.attr("data-validation");
            if(dataValidation==undefined || $.trim(dataValidation)=="") {
                try{console.info("期望校验的ID 为[%s]没有配置校验规则", elementsId[_i]);}catch(e){}
            }else {//去除两端空格
                dataValidation = dataValidation.replace(/(^\s*)|(\s*$)/g,"");
                validation = dataValidation.split(" ");
                for(var _j=0;_j<validation.length;_j++) {
                    try {
                        var resultval = null;
                        if($.inArray("required",validation)>-1) {
                            if(!validateRequired && validation[_j]=="required") {
                                continue;
                            }else if(!validateRequired && validation[_j]!="required" && ele.val()!="") {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘").replace(/\\/g,"\\\\");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }
                            if(validateRequired) {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘").replace(/\\/g,"\\\\");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }
                        }else {
                            if(ele.val()!="") {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘").replace(/\\/g,"\\\\");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }else {
                                continue;
                            }
                        }
                        if(result===true) {
                            continue;
                        }else if(result===false) {
                            var tip = $(ele).attr("data-tip-" + validation[_j]);
                            if($(ele).attr("data-original-title")==undefined) {
                                $(ele).tooltip({trigger:"focus blur", title:tip, placement:"left"});
                            }else {
                                $(ele).tooltip('destroy');
                                $(ele).tooltip({trigger:"focus blur", title:tip, placement:"left"});
                            }
                            $(ele).show();
                            $(ele).focus();
                            $(ele).tooltip('show');
                            $(ele).on("hidden.bs.tooltip",function() {
                                $(this).tooltip('disable');
                            });
                            return false;
                        }
                    } catch(e){
                        throw e;
                        return undefined;
                    }
                }
            }
        }
        return true;
    }else {
        throw "参数有误";
        return undefined;
    }
        
};
cpic.util.doValidationMsg = function(elementsId,elementsNm, validateRequired, context) {
    var msg={};
    if(Object.prototype.toString.call(elementsId)=="[object Array]" && elementsId.length>0) {
        var ele=null;
        var dataValidation=null;
        var validation=null;
        var result = null;
        for(var _i=0;_i<elementsId.length;_i++) {
            if(context) {
                ele = $($("#" + elementsId[_i], context)[0]);
            }else {
                ele = $($("#" + elementsId[_i])[0]);
            }
            if(context) {
                if(ele[0].tagName == "SELECT"){
                    ele.parent().css("background", "");
                }else{
                    ele.css("background", "");
                }
            } else {
                if($("#" + elementsId[_i])[0].tagName == "SELECT"){
                    $("#" + elementsId[_i]).parent().css("background", "");
                }else{
                    $("#" + elementsId[_i]).css("background", "");
                }
            }
            
            dataValidation = ele.attr("data-validation");
            if(dataValidation==undefined || $.trim(dataValidation)=="") {
                try{console.info("期望校验的ID 为[%s]没有配置校验规则", elementsId[_i]);}catch(e){}
            }else {
                dataValidation = dataValidation.replace(/(^\s*)|(\s*$)/g,"");//去除两端空格
                validation = dataValidation.split(" ");
                for(var _j=0;_j<validation.length;_j++) {
                    try {
                        var resultval = null;
                        if($.inArray("required",validation)>-1) {
                            if(!validateRequired && validation[_j]=="required") {
                                continue;
                            }else if(!validateRequired && validation[_j]!="required" && ele.val()!="") {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘").replace(/\\/g,"\\\\");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }
                            if(validateRequired) {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘").replace(/\\/g,"\\\\");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }
                        }else {
                            if(ele.val()!="") {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘").replace(/\\/g,"\\\\");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }else {
                                continue;
                            }
                        }
                        if(result===true) {
                            
                            continue;
                        }else if(result===false) {
                            var tip = $(ele).attr("data-tip-" + validation[_j]);
//                            if($(ele).attr("data-original-title")==undefined) {
//                                $(ele).tooltip({trigger:"focus blur", title:tip, placement:"left"});
//                            }else {
//                                $(ele).tooltip('destroy');
//                                $(ele).tooltip({trigger:"focus blur", title:tip, placement:"left"});
//                            }
                            msg[elementsNm[_i]] = tip;
                            
                            if(context) {
                                if(ele[0].tagName == "SELECT"){
                                    ele.parent().css("background", "pink");
                                }else{
                                    ele.css("background", "pink");
                                }
                            } else {
                                if($("#" + elementsId[_i])[0].tagName == "SELECT"){
                                    $("#" + elementsId[_i]).parent().css("background", "pink");
                                }else{
                                    $("#" + elementsId[_i]).css("background", "pink");
                                }
                            }
//                            $(ele).show();
//                            $(ele).focus();
//                            $(ele).tooltip('show');
//                            $(ele).on("hidden.bs.tooltip",function() {
//                                $(this).tooltip('disable');
//                            });
                            //add by zhaolei 修改两个验证时,第一个验证不通过,则不校验第二个
                            break;
                        }
                    } catch(e){
                    }
                }
            }
        }
        return msg;
    }else {
        throw "参数有误";
        return undefined;
    }
};
cpic.util.doValidationTable = function(elementsId,validateRequired,validationMsg,columnName,tableName) {
    var msg={};
    var i = 0;
    var cnt = 0;
    $("#" + elementsId +" tr").each(function(){ 
        var num = 0;
        $(this).children("td").children("input").each(function(){ 
            $(this).css("background", "");
            if($(this)[0].type == "TEXT" || $(this)[0].type == "text"){
                for(var x=0;x<validateRequired[num].split('-').length;x++){
                    var result = true;
                    result = eval("cpic.util.is" + validateRequired[num].split('-')[x]+ "('" + $(this).val() + "')");
                    if(result === false){
                        msg[cnt] = tableName + "第" + (Number(i) + 1) + "行:" + columnName[$(this)[0].name] +validationMsg[num].split('-')[x];
                        $(this).css("background", "pink");
                        cnt ++;
                    }
                }
                num ++;
            }
        });
        i++;
    });
    return msg;
};
cpic.util.doValidationChildrenTable2 = function(elementsId,validateRequired,validationMsg,columnName,tableName,other) {
    var msg={};
    var count = 0;
        var i = 0;
        $("#" + elementsId +" tr").each(function(){ 
            var num = 0;
            
                $(this).children("td").children("input").each(function(){ 
                    $(this).css("background", "");
                    if($(this)[0].type == "TEXT" || $(this)[0].type == "text"){
                        for(var x=0;x<validateRequired[num].split('-').length;x++){
                            var result = true;
                            result = eval("cpic.util.is" + validateRequired[num].split('-')[x]+ "('" + $(this).val() + "')");
                            if(result === false){
                                msg[count] = other + tableName + "第" + (Number(i) + 1) + "行:" + columnName[$(this)[0].name] +validationMsg[num].split('-')[x];
                                $(this).css("background", "pink");
                                count ++;
                            }
                        }
                        num ++;
                    }
                });
                i++;
            
        });
    return msg;
};
cpic.util.doValidationChildrenTable = function(elementsId,validateRequired,validationMsg,columnName,tableName,parentTableName,other) {
    var msg={};
    
    var cnt = 0;
    $("#" + parentTableName +" tr").each(function(){ 
        var i = 0;
        var id = $(this).attr("id");
        $("#" + elementsId +" tr").each(function(){ 
            var num = 0;
            if($(this).attr("id") == id){
                $(this).children("td").children("input").each(function(){ 
                    $(this).css("background", "");
                    if($(this)[0].type == "TEXT" || $(this)[0].type == "text"){
                        for(var x=0;x<validateRequired[num].split('-').length;x++){
                            var result = true;
                            result = eval("cpic.util.is" + validateRequired[num].split('-')[x]+ "('" + $(this).val() + "')");
                            if(result === false){
                                msg[cnt] = other + id + tableName + "第" + (Number(i) + 1) + "行:" + columnName[$(this)[0].name] +validationMsg[num].split('-')[x];
                                $(this).css("background", "pink");
                                cnt ++;
                            }
                        }
                        num ++;
                    }
                });
                i++;
            }
        });
    });
    return msg;
};
cpic.util.doValidationPlanChildrenTable = function(elementsId,validateRequired,validationMsg,columnName,tableName,parentTableName,other) {
var msg={};
    
    var cnt = 0;
    //alert($("#" + parentTableName +" tr td").html());
    $("#" + parentTableName +" tr td").each(function(){ 
        var i = 0;
        var id = $(this).find("input").val();
        var showid = $(this).parent().children().eq(1).html();
        
        if(id !=undefined){
            $("#" + elementsId +" tr").each(function(){ 
                var num = 0;
                if($(this).attr("id") == id){
                    $(this).find("td").find("input").each(function(){ 
                        if($(this).attr("id") != "deductname" && $(this).attr("id") != "showFactorCode" && $(this).attr("id") != "showFactorName"){
                            //alert($(this).val());
                            $(this).css("background", "");
                                for(var x=0;x<validateRequired[num].split('-').length;x++){
                                    var result = true;
                                    result = eval("cpic.util.is" + validateRequired[num].split('-')[x]+ "('" + $(this).val() + "')");
                                    if(result === false){
                                        msg[cnt] = other + showid + tableName + "第" + (Number(i) + 1) + "行:" + columnName[$(this)[0].name] +validationMsg[num].split('-')[x];
                                        $(this).css("background", "pink");
                                        cnt ++;
                                        break;
                                    }
                                }
                                num ++;
                        }
                        
                    });
                    i++;
                }
            });
        }
        
    });
    return msg;
};

/**
 * 校验判断是否为空
 * */
cpic.util.isRequired = function(str) {
    if(str==""){
        return false;
    }else {
        return true;
    }
};
/**
 * 姓名校验
 * @param name
 * @returns
 */
cpic.util.isName = function(name) {
    var s = new RegExp("^([\u4E00-\u9FA5]{1,50}|[a-zA-Z\.\s]{1,100})$");
    return s.test(name);
};
/**
 * 中文 英文字母 数字
 */
cpic.util.isNaber=function(naber){
    var s=/^([a-zA-Z0-9\u4E00-\u9FA5])+$/;
    return s.test(naber)
}
/**
 *  英文字母 数字
 */
cpic.util.isNaberandnumber=function(naber){
    var s=/^([a-zA-Z0-9])+$/;
    return s.test(naber)
}
/****
 * 号码校验
 * @param phone
 * @returns
 */
cpic.util.isMobile = function(phone) {
    var reg = /^1\d{10}$/;//以1开头,11位数字
    return reg.test(phone);
};
/***
 * 邮箱校验
 * @param email
 * @returns
 */
cpic.util.isEmail = function(email) {
    var reg=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$/;
    return reg.test(email);
}
/***
 * 邮编校验
 * @param postcode
 * @returns
 */
cpic.util.isPostcode = function(postcode){
    var reg=/^\d{6}$/;
    return reg.test(postcode);
}

/***
 * 手机校验
 * @param postcode
 * @returns
 */
cpic.util.isTelephone = function(telephone){
    var reg=/^0{0,1}(13[0-9]|15[012356789]|18[0236789]|14[57]|170)[0-9]{8}$/;
    return reg.test(postcode);
}

/***
 * 电话号码校验
 * @param postcode
 * @returns
 */
cpic.util.isPhone = function(phone){
    var reg=/^((0[0-9]{2,3}\\-?)|(\\(0[0-9]{2,3}\\)))?([2-9][0-9]{6,7})(\\-[0-9]{1,4})?$/;
    return reg.test(postcode);
}

/***
 * 组织机构代码,10位并且以以-数字结尾
 * @param legal_organizationcode
 * @returns {Boolean}
 */
cpic.util.isOrganizationcode = function(organizationcode) {
    var reg=/^[a-zA-Z0-9]{8}-[a-zA-Z0-9]$/;
    return reg.test(organizationcode);
};
/***
 * 地址
 * @param addressstreet
 * @returns {Boolean}
 */
cpic.util.isAddressstreet = function(addressstreet) {
//    var s = new RegExp("^(?=.*?[\u4E00-\u9FA5])[\dA-Za-z\u4E00-\u9FA5]+(?=.*?[\u4E00-\u9FA5])");
    // var s = new RegExp("[\u4E00-\u9FA5\\w]+");
    var pattern = new RegExp("[`~!@#$%^&*()=|{}':;'\\[\\]<>/?¥【】]");
    return !pattern.test(addressstreet);
//    return !/[@#\$%\^&\*]+/g.test(addressstreet);
};
/***
 * 护照校验,长度大于5即可
 * @param str
 * @returns {Boolean}
 */
cpic.util.isPassport = function(str) {
    if((typeof str=="string") && str.length>5) {
        return true;
    }else {
        return false;
    }
};
/****
 * 身份证号码校验
 * @param idCard
 * @returns {Boolean}
 */
cpic.util.isIdnumber = function(idCard){
    //15位和18位身份证号码的正则表达式  
    var regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;  //如果通过该验证,说明身份证格式正确,但准确性还需计算  
    if(regIdCard.test(idCard)){
        if(idCard.length==18){
            var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ); //将前17位加权因子保存在数组里    
            var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ); //这是除以11后,可能产生的11位余数、验证码,也保存成数组    
            var idCardWiSum=0; //用来保存前17位各自乖以加权因子后的总和   
            for(var i=0;i<17;i++){     
                idCardWiSum+=idCard.substring(i,i+1)*idCardWi[i];
            }
            var idCardMod = idCardWiSum % 11;//计算出校验码所在数组的位置    
            var idCardLast=idCard.substring(17);//得到最后一位身份证号码   
            //如果等于2,则说明校验码是10,身份证号码最后一位应该是X    
            if(idCardMod==2){
                if(idCardLast=="X"||idCardLast=="x"){
                    return true;
                } 
            }else{     //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码    
                if(idCardLast==idCardY[idCardMod]){
                    return true;
                }
            }
        }
    }
    return false;
};
/**
 * 网址
 * 只允许http、https、ftp这三种
 * 如:http://www.baidu.com  
 **/ 
cpic.util.isUrl = function(url) {
    var reg=/^(([hH][tT]{2}[pP][sS]?)|([fF][tT][pP]))\:\/\/[wW]{3}\.[\w-]+\.\w{2,4}(\/.*)?$/;
    return reg.test(url);
}
/***
 * 正整数
 * @returns
 */
cpic.util.isPositiveinteger = function(number) {
    var reg=/^[0-9]*[0-9][0-9]*$/;
    number = String(number);
    return reg.test(number);
}

/***
 * 正整数与-1
 * @returns
 */
cpic.util.isPositiveintegerAndOne = function(number) {
    var reg=/^[1-9]\d{0,2}$/;
    number = String(number);
    if(number == "0")
    {
        return true;
    }
    if(number == "-1")
    {
        return true;
    }
    return reg.test(number);
    
}
/***
 * 正整数(5位)与-1
 * @returns
 */
cpic.util.isPositiveintegerAndOne5 = function(number) {
    var reg=/^[1-9]\d{0,4}$/;
    number = String(number);
    if(number == "0")
    {
        return true;
    }
    if(number == "-1")
    {
        return true;
    }
    return reg.test(number);
    
};
/***
 * 正整数(8位)与-1
 * @returns
 */
cpic.util.isPositiveintegerAndOne8 = function(number) {
    var reg=/^[1-9]\d{0,7}$/;
    number = String(number);
    if(number == "")
    {
        return true;
    }
    if(number == "0")
    {
        return true;
    }
    if(number == "-1")
    {
        return true;
    }
    return reg.test(number);
    
};
/***
 * 正整数(5位)与-1
 * @returns
 */
cpic.util.isPositiveintegerAnd5 = function(number) {
    var reg=/^[1-9]\d{0,4}$/;
    number = String(number);
    if(number == "")
    {
        return true;
    }
    if(number == "0")
    {
        return true;
    }
    if(number == "-1")
    {
        return true;
    }
    return reg.test(number);
    
}
/***
 * 正整数(3位)与-1
 * @returns
 */
cpic.util.isPositiveintegerAnd3 = function(number) {
    var reg=/^[1-9]\d{0,2}$/;
    number = String(number);
    if(number == "")
    {
        return true;
    }
    if(number == "0")
    {
        return true;
    }
    if(number == "-1")
    {
        return true;
    }
    return reg.test(number);
    
}
/***
 * 正整数(3位)与-1
 * @returns
 */
cpic.util.isPositiveintegerAndOne3 = function(number) {
    var reg=/^[1-9]\d{0,2}$/;
    number = String(number);
    if(number == "0")
    {
        return true;
    }
    if(number == "-1")
    {
        return true;
    }
    return reg.test(number);
    
}
/***
 * 是否数字,包括小数
 * @param number
 * @returns
 */
cpic.util.isNumber = function(number) {
    var reg = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/;
    return reg.test(number);
};
/***
 * 是否1-99之间的数字,包括小数
 * @param number
 * @returns
 */
cpic.util.isPercentage = function(number) {
    var reg = /^(([1-9]{1}[0-8]?|[1-8][9])(\.\d*)?|99)$/;
    return reg.test(number);
};

/***
 * 外销比例,0-100之间的数字,包括小数
*/
cpic.util.isPercent  = function(number) {
    var reg = /^(((([1-9][0-9])|([0-9]))(\.\d*)?)|(100))$/;
    return reg.test(number);
};
/**
 * 正数
 */
cpic.util.isPositive=function(number){
    var reg = /^(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/;
    return reg.test(number);
} 

/**
 * 非空验证
 */
cpic.util.isNotBlank=function(str){
    var obj = str.replace(/(^\s*)|(\s*$)/g,"");
    return !(obj === "" || obj === null || obj === undefined);
}

/**
 * 英文and数字
 */
cpic.util.isCharacter=function(number){
    var reg = /^[a-zA-Z0-9]*$/;
    return reg.test(number);
} 
/**
 * 禁止输入中文1
 */
cpic.util.isNotChinese=function(string){
    var reg = /^[^\u4e00-\u9fa5]*$/;
    return reg.test(string);
} 
/**
 * 中文验证
 */
cpic.util.isChinese=function(string){
    var reg = /^[\u4e00-\u9fa5]*$/;
    return reg.test(string);
} 


/**
 * 非负数
 * @param string
 * @returns
 */
cpic.util.isNotNegativeinteger=function(string){
    var reg = /^[0-9]*$/;
    return reg.test(string);
}

/**
 *    18位英数
*/
cpic.util.isEighteenCharacter=function(String){
    var reg= /^[a-zA-Z0-9]{18}$/;
    return reg.test(String);
}

/**
 *    3位英文
*/
cpic.util.isEighteenCharacterfour=function(String){
    var reg= /^[a-zA-Z]{1,3}$/;
    return reg.test(String);
}

//企业执照效验
cpic.util.isLicense=function(String){
    var reg=/^([a-zA-Z0-9]{15}|[a-zA-Z0-9]{18})$/;
    return reg.test(String);
}
/**
 * 日期校验
 * edit by nry
 * @param string
 * @returns
 */
cpic.util.isDateloan=function(str){
    var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;
    var r = str.match(reg);
    if(r==null) 
        return false;
    r[2]=r[2]-1;
    var d = new Date(r[1], r[2],r[3]);
    if(d.getFullYear()!=r[1])
        return false;
    if(d.getMonth()!=r[2])
        return false;
    if(d.getDate()!=r[3])
        return false;
    return true;
}
/**
 * 日期数校验
 * 若为1到当前月最大日期之间的整数,返回true,否则为false
 */
cpic.util.isDayNum=function(dayNum){
    return !isNaN(dayNum) && cpic.util.isPositiveinteger(dayNum) && dayNum >= 1 && dayNum <= cpic.util.getLastDay(cpic.getServerTime());
}
/** 获取传入时间当月最后一天 */
cpic.util.getLastDay=function(date){
    if(Object.prototype.toString.call(date) == "[object Date]"){// 判断参数数据类型
        var new_year = date.getFullYear();// 获取年份
        var new_month = date.getMonth() + 1;// 获取月份
        if(new_month > 11){// 11表示12月份
            new_year ++;// 年份增
            new_month -= 12;// 月份减
        }
        return new Date(new Date(new_year, new_month, 1).getTime() - 1000 * 60 * 60 * 24).getDate();
    } else {
        throw "参数有误";
        return undefined;
    }
}

/** 非负数小数点后保留两位*/
cpic.util.isCheckmoneyformat = function(String){
    var reg = /^[1-9]\d{0,9}(?:\.\d{1,2})?$/;
    return reg.test(String);
}

/** 非负数小数点后保留两位*/
cpic.util.isCheckmoneyNagetiveformat = function(String){
    if(String == "-1"){
        return true;
    }else{
        String = Number(String);
        var reg = /^0|[1-9]\d{0,9}(?:\.\d{1,2})?$/;
        return reg.test(String);
    }
}

/**
 * 大写字母和数字
 */
cpic.util.isGreatCharacter=function(number){
    var reg = /^[A-Z0-9]*$/;
    return reg.test(number);
}

/**
 *    20位英数
*/
cpic.util.isTwentyCharacter=function(String){
    var reg= /^[a-zA-Z0-9]{20}$/;
    return reg.test(String);
}

/**
 * 中文 英文字母 数字与()和_
 */
cpic.util.isNaberOrSymbol=function(naber){
    var s=/^([a-zA-Z0-9\u4E00-\u9FA5()()_-》><《])+$/;
    return s.test(naber);
}

/** 保额**NUMBER(16,2)*/
cpic.util.isCheckMount = function(String){
    if(String == "-1"){
        return true;
    }else{
        String = Number(String);
        var reg = /^[0-9]{0,14}(\.[0-9]{0,2})?$/;
        return reg.test(String);
    }
}
/** 手续费率 **NUMBER(4,2)*/
cpic.util.isCheckCommissionrate = function(String){
        String = Number(String);
        var reg = /^[0-9]{0,2}(\.[0-9]{0,2})?$/;
        return reg.test(String);
}
/** **NUMBER(16,6)*/
cpic.util.isCheckDeductRate = function(String){
    if(String == "-1"){
        return true;
    }else{    
        String = Number(String);
        var reg = /^[0-9]{0,10}(\.[0-9]{0,6})?$/;
        return reg.test(String);
    }
}

/** **因子明细最大值最小值
 * NUMBER(16,6)*/
cpic.util.isCheckFactorMax = function(String){
    if(String == "-1"){
        return true;
    }else{
        String = Number(String);
        var reg = /^[0-9]{0,10}(\.[0-9]{0,6})?$/;
        return reg.test(String);
    }
}

/** 保费**NUMBER(8,6)*/
cpic.util.isCheckRate = function(String){
    if(String == "-1"){
        return true;
    }else{
        String = Number(String);
        var reg = /^[0-9]{0,2}(\.[0-9]{0,6})?$/;
        return reg.test(String);
    }
}
/**赔付比率**NUMBER(10,4)*/
cpic.util.isdeductrate = function(String){
    if(String == "-1"){
        return true;
    }else{
        String = Number(String);
        var reg = /^[0-9]{0,6}(\.[0-9]{0,4})?$/;
        return reg.test(String);
    }
}
/**免赔额元加倍给付NUMBER(10,2)**/
cpic.util.isdeductamount = function(String){
    if(String == "-1"){
        return true;
    }else{
        String = Number(String);
        var reg = /^[0-9]{0,8}(\.[0-9]{0,2})?$/;
        return reg.test(String);
    }
}



/****
 * 校验
 * @param elementsId
 * @param validateRequired required是否校验(暂存时)
 * @param context
 * @returns {Boolean}
 */
cpic.util.doValidation4Alert = function(elementsId, validateRequired, context) {
    if(Object.prototype.toString.call(elementsId)=="[object Array]" && elementsId.length>0) {
        var ele=null;
        var dataValidation=null;
        var validation=null;
        var result = null;
        for(var _i=0;_i<elementsId.length;_i++) {
            if(context) {
                ele = $($("#" + elementsId[_i], context)[0]);
            }else {
                ele = $($("#" + elementsId[_i])[0]);
            }
            dataValidation = ele.attr("data-validation");
            if(dataValidation==undefined || $.trim(dataValidation)=="") {
                try{console.info("期望校验的ID 为[%s]没有配置校验规则", elementsId[_i]);}catch(e){}
            }else {
                dataValidation = dataValidation.replace(/(^\s*)|(\s*$)/g,"");//去除两端空格
                validation = dataValidation.split(" ");
                for(var _j=0;_j<validation.length;_j++) {
                    try {
                        var resultval = null;
                        if($.inArray("required",validation)>-1) {
                            if(!validateRequired && validation[_j]=="required") {
                                continue;
                            }else if(!validateRequired && validation[_j]!="required" && ele.val()!="") {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }
                            if(validateRequired) {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }
                        }else {
                            if(ele.val()!="") {
                                //add by nry 文本域回车,英文单引号处理 2015-11-24
                                resultval = ele.val().replace(/(\r)*\n/g,"").replace(/\'/g,"‘");
                                //end by nry
                                result = eval("cpic.util.is" + validation[_j].firstToUpperCase() + "('" + resultval + "')");
                            }else {
                                continue;
                            }
                        }
                        if(result===true) {
                            continue;
                        }else if(result===false) {
                            var tip = $(ele).attr("data-tip-" + validation[_j]);
                            if($(ele).attr("data-original-title")==undefined) {
                                $(ele).tooltip({trigger:"focus blur", title:tip, placement:"left"});
                            }else {
                                $(ele).tooltip('destroy');
                                $(ele).tooltip({trigger:"focus blur", title:tip, placement:"left"});
                            }
                            alert(tip);
                            $(ele).show();
                            $(ele).focus();
                            $(ele).tooltip('show');
                            $(ele).on("hidden.bs.tooltip",function() {
                                $(this).tooltip('disable');
                            });
                            return false;
                        }
                    } catch(e){
                        throw e;
                        return undefined;
                    }
                }
            }
        }
        return true;
    }else {
        throw "参数有误";
        return undefined;
    }
        
};

 

posted @ 2021-03-04 16:13  南山下的采药人  阅读(103)  评论(0编辑  收藏  举报