javascript实现检验的各种规则
本文实例讲述了javascript实现检验的各种规则。分享给大家供大家参考。具体如下:
/** *检验各种规则 *@paramstr检验的内容 *@paramcType预设的检验规则字符串[ *empty,检验是否为空 *telphone,座机手机号码 *allphone,所有手机号码 *ydphone,移动手机号码 *ltphone,联通手机号码 *dxphone,电信手机号码 *email,邮箱 *url,网址 *cn,汉字 *image,图片格式 *emscode,邮政编码 *isEmpty,检查是否为空 *isint,整数 *isfloat,判断是否为正小数 *isnumber,判断为实数 *words,判断是否为英文字母 *wordsAndNum,判断是否为字母+数字 *wordsAndNumAndDownline,判断是否由数字、26个英文字母或者下划线组成的字符串 *qq,QQ检验 *personCard18,身份证18位 *personCard15,身份证15位 *] *@paramregex自定义表达式传入格式例如:"^\-?[1-9]+\d*$" * *@descriptioncType与regex只能有一个为空 *如checkObjectByRegex("测试中文","cn");//判断中文 *如checkObjectByRegex("测试中文",null,"^[\u4e00-\u9fa5]+$");//自定义表达式正则 *@return{boolean} */ functioncheckObjectByRegex(str,cType,regex){ /** *定义验证各种格式类型的正则表达式对象 */ varRegexs={ telphone:(/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/),//座机手机号码 allphone:(/^((13[0-9])|(14[57])|(15[0-9])|(17[678])|(18[0-9]))[0-9]{8}$/),//所有手机号码 ydphone:(/^((13[4-9])|(15[012789])|147|178|(18[23478]))[0-9]{8}$/),//移动手机号码 ltphone:(/^((13[0-2])|(145)|(15[56])|(176)|(18[56]))[0-9]{8}$/),//联通手机号码 dxphone:(/^((133)|(153)|(177)|(180)|(181)|(189))[0-9]{8}$/),//电信手机号码 email:(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/),//邮箱 url:(/(?:https|http|ftp|rtsp|mms):\/\/.+\/[\w]+\.[\w]+/),//网址 cn:(/^[\u4e00-\u9fa5]+$/i),//汉字 image:(/\.jpg$|\.jpeg$|\.png$/i),//图片格式 emscode:(/^[1-9]\d{5}$/),//邮政编码 isint:(/^(\-)?[1-9]+\d*$/),//整数 isfloat:(/^[0-9]+\.?[0-9]*$/),//判断是否为正小数 isnumber:(/^[-\+]?\d+(\.\d+)?$/),//判断为实数 words:(/^[A-Za-z]+$/),//判断是否为英文字母 wordsAndNum:(/^[A-Za-z0-9]+$/),//判断是否为字母+数字 wordsAndNumAndDownline:(/^\w+$/),//判断是否由数字、26个英文字母或者下划线组成的字符串 qq:(/^[1-9]\d{4,11}$/),//QQ personCard18:(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/),//身份证18位 personCard15:(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/)//身份证15位 }; varnReg; if(str==null||typeof(str)=="undefined"){ str=""; } if(cType!=null&&typeof(cType)!="undefined"){ if(cType=="isEmpty"){ str=$.trim(str); if(str!=null&&typeof(str)!="undefined"&&str!=""){ returnfalse; }elsereturntrue; } nReg=Regexs[cType]; if(str==null||str=="")returnfalse;//输入为空,认为是验证通过 //针对18位身份证单独处理 if(cType=='personCard18'){ varary=str.match(Regexs[cType]); if(!(parseInt(ary[3])>=1900))returnfalse; varD=newDate(ary[3]+"/"+ary[4]+"/"+ary[5]); varisTrue=D.getFullYear()==ary[3]&&(D.getMonth()+1)==ary[4]&&D.getDate()==ary[5]; returnisTrue; } //针对15位身份证单独处理 if(cType=='personCard15'){ varary=str.match(Regexs[cType]); varD=newDate("19"+ary[3]+"/"+ary[4]+"/"+ary[5]); varisTrue=D.getYear()==ary[3]&&(D.getMonth()+1)==ary[4]&&D.getDate()==ary[5]; returnisTrue; } }else{ //自定义正则表达式处理 if(regex!=null&&typeof(regex)!="undefined"){ nReg=newRegExp(regex); }else{ returnfalse; } } returnnReg.test(str); }
希望本文所述对大家的javascript程序设计有所帮助。