Vue 주민등록번호 전화번호 메 일 등 체크
7687 단어 전단 - 부락
/**
* @desc ElementUI Form rules , : http://element-cn.eleme.io/#/zh-CN/component/form [ ]
* @example rules: {
* ip: [
* {required: true, message: ' IP', trigger: 'blur'},
* {validator: this.$rules.ipAddress, trigger: 'blur'}
* ]
* }
*
*/
export const validater = {
/**
* 、 、
*
*/
validateAccount(rule, value, callback) {
let acount = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/
if (value && (!(acount).test(value))) {
callback(new Error(' '))
} else {
callback()
}
},
/**
* IP
*/
ipAddress(rule, value, callback) {
if(value && "..." === value){
callback(new Error(' IP '))
}if (value && !(/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/).test(value)) {
callback(new Error('IP '))
} else {
callback()
}
},
/**
*
*/
phoneNumber(rule, value, callback) {
if (value && (!(/^[1][34578]\d{9}$/).test(value) || !(/^[1-9]\d*$/).test(value) || value.length !== 11)) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
telephoneNumber(rule, value, callback) {
if (value && (!(/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/).test(value))) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
emailValue(rule, value, callback) {
let temp = /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/
let tempOne = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
if (value && (!(temp).test(value))) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
idCard(rule, value, callback) {
if (value && (!(/\d{17}[\d|x]|\d{15}/).test(value) || (value.length !== 15 && value.length !== 18))) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
integerP(rule, value, callback) {
if (value && !(/^[1-9]\d*$/).test(value)) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
integerN(rule, value, callback) {
if (value && !(/^-[1-9]\d*$/).test(value)) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
enText(rule, value, callback) {
// let a = '',
// arr = value.split(" ")
// for (let i = 0; i < arr.length; i++) { //
// a += arr[i];
// }
if (value && !(/^[A-Za-z]+$/).test(value)) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
ChEnText(rule, value, callback) {
if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
cnText(rule, value, callback) {
// let a = '',
// arr = value.split(" ")
// for (let i = 0; i < arr.length; i++) { //
// a += arr[i];
// }
if (value && (/[^\u4e00-\u9fa5]/).test(value)) {
callback(new Error(' '))
} else {
callback()
}
},
/**
*
*/
enOrnunText (rule, value, callback) {
if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
callback(new Error(' '))
} else {
callback()
}
},
/**
* 20 ,
*/
validateDeviceNo (rule, value, callback) {
if (value && !(/^[1-9]\d*$/).test(value)) {
callback(new Error(' '))
} else {
if (!/^[0-9]{20}$/.test(value)) {
callback(new Error(' 20 !'));
} else {
callback();
}
}
},
/**
* Mac
* xx-xx-xx-xx-xx-xx (xx 16 )
*/
validateMac (rule, value, callback) {
let temp = /[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}/;
if (!temp.test(value)) {
callback(new Error(' xx-xx-xx-xx-xx-xx MAC !'));
} else{
callback();
}
},
/**
*
*/
validateCode (rule, value, callback) {
let num = /^[1-9]\d*$/
if (value && !(num).test(value)) {
callback(new Error(' '))
} else {
let codeLen = value.toString().length
console.log(codeLen)
if(codeLen > 0 && codeLen % 3 !== 0){
callback(new Error(' 3 '))
}else if(codeLen>18){
callback(new Error(' 18 , '))
}
else {
callback()
}
}
},
/**
*
*/
validateLength (rule, value, callback) {
let codeLen = value.toString().length
if(codeLen>18){
callback(new Error(' 20 , '))
}
},
/**
* ,
*/
validateTwoNum (rule, value, callback) {
let temp = /^[1-9]{2}$/;
if (!temp.test(value)) {
callback(new Error(' !'));
} else{
callback();
}
},
/**
*
*
*/
checkLongitude(rule, value, callback) {
let longrg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
if(!longrg.test(value)){
callback(new Error(' 0-180, 0 6 !'));
} else {
callback();
}
},
/**
*
*
*/
checkLatitude(rule, value, callback) {
var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
if(!latreg.test(value)){
callback(new Error(' 0-90, 0 6 !'));
} else {
callback();
}
}
}
2. 상세 한 신분 검사 방식
/* */
Vue.prototype.isIdCard = (idCard) =>{
let regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
if(regIdCard.test(idCard)){
if(idCard.length === 18){
let idCardWi = new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 );
let idCardY = new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 );
let idCardWiSum = 0
for(let i=0;i<17;i++){
idCardWiSum+=idCard.substring(i,i+1)*idCardWi[i];
}
let idCardMod=idCardWiSum%11
let idCardLast=idCard.substring(17)
if(idCardMod === 2){
if(idCardLast === "X"||idCardLast === "x"){
return true;
}else{
Vue.prototype.$message.warning(' !, ')
return false;
}
}else{
if(idCardLast === idCardY[idCardMod]){
return true;
}else{
Vue.prototype.$message.warning(' !, ')
return false;
}
}
}
}else{
Vue.prototype.$message.warning(' !, ')
return false
}
}
3. 사용 방식
/* */
rules: {
mobilePhone: [
{required: true, message: ' ', trigger: 'blur'},
{validator: this.$rules.phoneNumber, trigger: 'blur'}
],
cardId: [
{required: true, message: ' ', trigger: 'blur'},
{validator: this.$rules.idCard, trigger: 'blur'}
]
},
간단 한 블 로그 설명 은 자신의 작은 부분 만 기록 할 뿐 부당 한 부분 이 있 으 면 가르침 을 환영 합 니 다. 감사합니다.