/**
* 表單校驗規則
* 不符合規則時,傳回錯誤文案
* 符合規則時,傳回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;