You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.7 KiB
98 lines
2.7 KiB
/**
|
|
* 表单校验规则
|
|
* 不符合规则时,返回错误文案
|
|
* 符合规则时,返回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;
|