js各种的校验规则总结
//总结校验规则
/*是否带有小数*/
function isDecimal(strValue ) {
var objRegExp= /^\d+\.\d+$/;
return objRegExp.test(strValue);
}
/*校验是否中文名称组成 */
function ischina(str) {
var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/
return reg.test(str); /*进行验证*/
}
/*校验是否全由8位数字组成 */
function isStudentNo(str) {
var reg=/^[0-9]{8}$/; /*定义验证表达式*/
return reg.test(str); /*进行验证*/
}
/*校验电话码格式 */
function isTelCode(str) {
var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
return reg.test(str);
}
/*校验邮件地址是否合法 */
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
function fun1(){
if(!isStudentNo(document.getElementById("sno").value)){
alert("学生编号是8位数字");
document.getElementById("sno").focus();
return false;
}
if(!ischina(document.getElementById("username").value)){
alert("学生姓名必须填写中文");
document.getElementById("username").focus();
return false;
}
if(!IsEmail(document.getElementById("email").value)){
alert("邮箱地址错误");
document.getElementById("email").focus();
return false;
}
if(!isTelCode(document.getElementById("tel").value)){
alert("电话号码不对");
document.getElementById("tel").focus();
return false;
}
/*运行到这里说明验证通过返回true submit提交按钮起作用提交表单*/
alert("提交成功")
return false; // 这边设置禁止提交,实际项目需要改为 true
}
//js文件
(function (factory) {
if (typeof define === "function" && define.amd) {
define(["jquery", "../jquery.validate"], factory);
} else {
factory(jQuery);
}
}(function ($) {
$.extend($.validator.messages, {
required: "请填写",
remote: "请修正此栏位",
email: "请输入有效的电子邮件",
url: "请输入有效的网址",
date: "请输入有效的日期",
dateISO: "请输入有效的日期 (YYYY-MM-DD)",
dateformat: "请输入有效的日期 (YYYY-MM-DD HH:mm)",
number: "请输入正确的数字",
digits: "只可输入数字",
creditcard: "请输入有效的信用卡号码",
equalTo: "你的输入不相同",
extension: "请输入有效的后缀",
maxlength: $.validator.format("最多 {0} 个字"),
minlength: $.validator.format("最少 {0} 个字"),
rangelength: $.validator.format("请输入长度为 {0} 至 {1} 之间的字串"),
range: $.validator.format("请输入 {0} 至 {1} 之间的数值"),
max: $.validator.format("请输入不大于 {0} 的数值"),
min: $.validator.format("请输入不小于 {0} 的数值"),
// custom
zznum: "请输入正整数",
zipcode: "邮政编码格式不正确",
mobilephone: "手机号码格式不正确",
telephone: "格式不正确,请使用类似格式:029-88888888-1234",
idcard: "身份证号码格式不正确",
noSpace: "不允许输入空格",
passWord:"密码只能包含大小写字母、数字和下划线且不能以下划线开头",
newPassWord:"密码由数字、字母和特殊符号(如!#$%&()*+,-./:;<=>?@[]^_`{|}~)中的两种或两种以上组成,请重新设置!",
newPassWord2:"密码长度需8-20位,由数字、字母和特殊符号(如!#$%&()*+,-./:;<=>?@[]^_`{|}~)组成。",
noChineseFormat:"密码不能输入中文格式字符",
selectRequired:$.validator.format("请选择{0}"),
code:"请输入大写字母、数字或下划线,不能以下划线开头和结尾",
groupCode:"必须以ROLE_开头且只能包含大写字母",
chineseName:"请输入汉字、字母,字符中间可以加'·'",
emailServer:"邮件服务器格式不正确",
ipv4:"ipv4格式不正确",
phone:"请输入正确的座机号或手机号",
validateJhao:"禁止输入#和&符号",
validateAnt:"禁止输入#和&符号",
legalChar:"请输入合法字符",
money:"请输入正确的金额",
minNumber:"输入的数字小数点后最多两位",
nozero:"请输入大于0的数值",
validateEngName:"请输入除汉字之外的其他合法字符",
zznumAndZero: "请输入0或者正整数"
,mobileAndTelephone:"电话号码不正确"
});
/*
* 校验规则
*/
// 小数位
$.validator.addMethod("minNumber",function( value, element) {
var returnVal = true;
inputZ=value;
var ArrMen= inputZ.split("."); //截取字符串
if(ArrMen.length==2){
if(ArrMen[1].length>2){ //判断小数点后面的字符串长度
returnVal = false;
return false;
}
}
return returnVal;
},$.validator.messages["minNumber"]);
//选择框必选
$.validator.addMethod("selectRequired",function( value, element,param) {
if ( element.nodeName.toLowerCase() === "select" ) {
var val = $( element ).val();
return val && val.length > 0;
}
if ( this.checkable( element ) ) {
return this.getLength( value, element ) > 0;
}
return $.trim( value ).length > 0;
},$.validator.messages["selectRequired"]);
// 正整数
$.validator.addMethod("zznum", function (value, element) {
var num = /^[1-9]*[1-9][0-9]*$/;
return this.optional(element) || (num.test(value));
}, $.validator.messages["zznum"]);
// 验证邮政编码
$.validator.addMethod("zipcode", function (value, element) {
return this.optional(element) || (/^[0-9]\d{5}$/.test(value));
}, $.validator.messages["zipcode"]);
// 验证手机号码
$.validator.addMethod("mobilephone", function (value, element) {
return this.optional(element) || (/^(13|14|15|16|17|18|19)\d{9}$/i.test(value));
}, $.validator.messages["mobilephone"]);
// 验证电话号码
$.validator.addMethod("telephone", function (value, element) {
return this.optional(element) || /^((1[0-9]{10})|(((([0-9]{3}-)?[0-9]{8})|(([0-9]{4}-)?[0-9]{7}))(-[0-9]{1,4})?))$/.test(value);
}, $.validator.messages["telephone"]);
//兼容座机号和手机号
$.validator.addMethod("phone", function (value, element) {
return this.optional(element) || (/^(0?1[3456789]\d{9})$|^((0(10|2[1-9]|[3-9]\d{2}))?[1-9]\d{6,7})$/.test(value));
}, $.validator.messages["phone"]);
// 验证身份证
$.validator.addMethod("idcard", function (value, element) {
return this.optional(element) || /(^\d{15}$)|(^\d{17}([0-9]|X)$)/i.test(value);
}, $.validator.messages["idcard"]);
// 验证多种证件类型 时 身份证 规则 正则,其他证件长度0至20
$.validator.addMethod("idcardType", function (value, element) {
if($("#cardType").val()=='1'){ //身份证
return this.optional(element) || /(^\d{15}$)|(^\d{17}([0-9]|X)$)/i.test(value);
}else{
return this.optional(element) || value.length<=20;
}
}, function(){
if($("#cardType").val()=='1'){ //身份证
return $.validator.messages["idcard"] ;
}else{
return $.validator.format("请输入长度为 0 至 20 之间的字符") ;
}
});
// 不允许输入空格
$.validator.addMethod("noSpace", function (value, element) {
return value.indexOf(" ") < 0 && value != "";
}, $.validator.messages["noSpace"]);
//密码格式
$.validator.addMethod("passWord", function (value, element) {
var pwd = /^[A-Za-z0-9_-]+$/;
return this.optional(element) || (pwd.test(value));
}, $.validator.messages["passWord"]);
//新密码格式
$.validator.addMethod("newPassWord", function (value, element) {
var pwd = /^(?![\d]+$)(?![a-zA-Z]+$)(?![!#$%^&*@\~()\+\-.,:;\/<=>\?\[\]_`{}|]+$)[\da-zA-Z!#$%^&*@\~()\+\-.,:;\/<=>\?\[\]_`{}|]{6,20}$/;
return this.optional(element) || (pwd.test(value));
}, $.validator.messages["newPassWord"]);
//新密码格式
$.validator.addMethod("newPassWord2", function (value, element) {
var pwd = /^(?=.*?[a-zA-Z]+.*?)(?=.*?[1-9]+.*?)(?=.*?[!#$%^&*@\~()\+\-.,:;\/<=>\?\[\]_`{}|]+.*?).{8,20}$/;
return this.optional(element) || (pwd.test(value));
}, $.validator.messages["newPassWord2"]);
//不允许输入中文格式的特殊符号
$.validator.addMethod("noChineseFormat", function (value, element) {
var pwd = /^[^!¥……()。,、;:’‘”“《》?【】]+$/;
return this.optional(element) || (pwd.test(value));
}, $.validator.messages["noChineseFormat"]);
//编码格式
$.validator.addMethod("code", function (value, element) {
var code = /^(?!_)(?!.*?_$)[A-Z0-9_]+$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["code"]);
//用户组CODE验证
$.validator.addMethod("groupCode", function (value, element) {
var code = /^ROLE_[A-Z]{1,20}$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["groupCode"]);
//中文姓名(如:张三、赵C、嘉木样·洛桑久美·图丹却吉尼玛、阿沛·阿旺晋美、卡尔·马克思)
$.validator.addMethod("chineseName", function (value, element) {
var code = /[a-zA-Z\u4E00-\u9FA5]{1,10}(?:·[a-zA-Z\u4E00-\u9FA5]{1,10})*/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["chineseName"]);
//邮箱服务器格式(如:smtp.qq.com)
$.validator.addMethod("emailServer", function (value, element) {
var code = /^(smtp)\.([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["emailServer"]);
//IPv4格式
$.validator.addMethod("ipv4", function (value, element) {
var code = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["ipv4"]);
//单独过滤特殊字符#
$.validator.addMethod("validateJhao", function (value, element) {
var code = /^[^#\x22]+$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["validateJhao"]);
//单独过滤特殊字符&
$.validator.addMethod("validateAnt", function (value, element) {
var code = /^[^&\x22]+$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["validateAnt"]);
//合法字符
$.validator.addMethod("legalChar", function (value, element) {
var code = /^[\u4e00-\u9fa5\w\d\:\-_\.\,\(\\)\(\\)\s\。\、ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ]*$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["legalChar"]);
// zero
$.validator.addMethod("nozero",function( value, element) {
var returnVal = true;
if(value != '' && value==0){
returnVal = false;
}
return returnVal;
},$.validator.messages["nozero"]);
//拼音姓名(数字、空格和字母)
$.validator.addMethod("validateEngName", function (value, element) {
var code = /^[^\u4e00-\u9fa5]{0,}$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["validateEngName"]);
//保留两位小数点的金额
$.validator.addMethod("money", function (value, element) {
var code = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/;
return this.optional(element) || (code.test(value));
}, $.validator.messages["money"]);
//正整数和零
$.validator.addMethod("zznumAndZero", function (value, element) {
var num = /^([1-9]\d*|[0]{1,1})$/;
return this.optional(element) || (num.test(value));
}, $.validator.messages["zznumAndZero"]);
}));
记录学习前端,慢慢提升自己的能力。。。。