js正则校验表单格式
/** * 表单校验规则 * 不符合规则时,返回错误文案 * 符合规则时,返回false */ var rules = {} // 是否必填 rules.required = function (value) { return (!!value || value === 0) ? false : "请输入内容" }; // 最大字符长度 rules.maxLength = function (value, size) { var size = size || 256; return String(value).length <= size ? false : ("最大不超过" + size + "个字符") } // 只允许字母和数字 rules.onlyAlphabetic = function (value) { var reg = /^[0-9a-zA-Z]+$/; return reg.test(value) ? false : "只能输入字母和数字" } // 只允许字母数字和下划线 rules.onlyAlphabeticUnderline = function (value) { var reg = /^[0-9a-zA-Z_]+$/; return reg.test(value) ? false : "只能输入字母、数字或下划线" } // 只允许数字 rules.onlyNumber = function (value) { var reg = /^[0-9]+$/; return reg.test(value) ? false : "只能输入数字" } // 只允许字母 rules.onlyLetter = function (value) { var reg = /^[a-zA-Z]+$/; return reg.test(value) ? false : "只能输入字母" } // 特殊字符 rules.noSpecial = function (value) { var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im, regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im; return regEn.test(value) || regCn.test(value) ? false : "不能输入特殊字符" } // 邮箱 rules.email = function (value) { var reg = /^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/; return reg.test(value) ? false : "邮箱格式错误" } // 手机号(以1开头的11位数字) rules.phone = function (value) { var reg = /^[1][3,4,5,7,8][0-9]{9}$/; return reg.test(value) ? false : "手机格式错误" } // 只允许汉字 rules.chinese = function (value) { var reg = /^[\u4e00-\u9fa5]+$/; return reg.test(value) ? false : "只能输入汉字" } // 密码格式校验 rules.password = function (value) { if (String(value).length < 6) { return "密码长度不小于6位" } if (String(value).length > 18) { return "密码长度不超过18位" } var level = 0; if (value.search(/[a-z]/) > -1) { level++; //密码中包含小写字母 } if (value.search(/[A-Z]/) > -1) { level++; //密码中包含大写字母 } if (value.search(/[0-9]/) > -1) { level++; //密码中包含数组 } if (value.search(/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im) > -1) { level++; //密码中包含特殊符号 } if(level<2){ return "密码至少包含大写字母、小写字母、数字、标点符号中的两种" }else{ return level; // 当前密码强度为level(2/3/4) } } export default rules;