注:轉(zhuǎn)載自原文https://www.jb51.net/article/174246.htm
1、是否合法IP地址
export function validateIP(rule, value,callback) {
?if(value==''||value==undefined||value==null){
?callback();
?}else{
?const reg = /^(\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])$/;
?if((!reg.test(value)) && value != '') {
?callback(newError('請(qǐng)輸入正確的IP地址'));
?} else{
?callback();
?}
?}
}
2、是否手機(jī)號(hào)碼或者固話(huà)?
export function validatePhoneTwo(rule, value, callback) {
?const reg = /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/;;
?if(value == ''|| value == undefined || value == null) {
?callback();
?} else{
?if((!reg.test(value)) && value != '') {
?callback(newError('請(qǐng)輸入正確的電話(huà)號(hào)碼或者固話(huà)號(hào)碼'));
?} else{
?callback();
?}
?}
}
3、是否固話(huà)
export function validateTelphone(rule, value,callback) {
?const reg =/0\d{2,3}-\d{7,8}/;
?if(value==''||value==undefined||value==null){
?callback();
?}else{
?if((!reg.test(value)) && value != '') {
?callback(newError('請(qǐng)輸入正確的固定電話(huà))'));
?} else{
?callback();
?}
?}
}
4、是否手機(jī)號(hào)碼
export function validatePhone(rule, value,callback) {
?const reg =/^[1][3-9][0-9]{9}$/;
?if(value==''||value==undefined||value==null){
?callback();
?}else{
?if((!reg.test(value)) && value != '') {
?callback(newError('請(qǐng)輸入正確的電話(huà)號(hào)碼'));
?} else{
?callback();
?}
?}
}
5、是否身份證號(hào)碼?
export function validateIdNo(rule, value,callback) {
?const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
?if(value==''||value==undefined||value==null){
?callback();
?}else{
?if((!reg.test(value)) && value != '') {
?callback(newError('請(qǐng)輸入正確的身份證號(hào)碼'));
?} else{
?callback();
?}
?}
}
6、是否郵箱?
export function validateEMail(rule, value,callback) {
?const reg =/^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;
?if(value==''||value==undefined||value==null){
?callback();
?}else{
?if(!reg.test(value)){
?callback(newError('請(qǐng)輸入正確的郵箱'));
?} else{
?callback();
?}
?}
}
7、合法url
export function validateURL(url) {
?const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
?returnurlregex.test(url);
}
8、驗(yàn)證內(nèi)容是否包含英文數(shù)字以及下劃線
export function isPassword(rule, value, callback) {
?const reg =/^[_a-zA-Z0-9]+$/;
?if(value==''||value==undefined||value==null){
?callback();
?} else{
?if(!reg.test(value)){
?callback(newError('僅由英文字母,數(shù)字以及下劃線組成'));
?} else{
?callback();
?}
?}
}
9、自動(dòng)檢驗(yàn)數(shù)值的范圍
export function checkMax20000(rule, value, callback) {
?if(value == ''|| value == undefined || value == null) {
?callback();
?} elseif(!Number(value)) {
?callback(newError('請(qǐng)輸入[1,20000]之間的數(shù)字'));
?} elseif(value < 1 || value > 20000) {
?callback(newError('請(qǐng)輸入[1,20000]之間的數(shù)字'));
?} else{
?callback();
?}
}
10、驗(yàn)證數(shù)字輸入框最大數(shù)值
export function checkMaxVal(rule, value,callback) {
?if(value < 0 || value > 最大值) {
?callback(newError('請(qǐng)輸入[0,最大值]之間的數(shù)字'));
?} else{
?callback();
?}
}
11、驗(yàn)證是否1-99之間
export function isOneToNinetyNine(rule, value, callback) {
?if(!value) {
?returncallback(newError('輸入不可以為空'));
?}
?setTimeout(() => {
?if(!Number(value)) {
?callback(newError('請(qǐng)輸入正整數(shù)'));
?} else{
?const re = /^[1-9][0-9]{0,1}$/;
?const rsCheck = re.test(value);
?if(!rsCheck) {
?callback(newError('請(qǐng)輸入正整數(shù),值為【1,99】'));
?} else{
?callback();
?}
?}
?}, 0);
}
12、驗(yàn)證是否整數(shù)
export function isInteger(rule, value, callback) {
?if(!value) {
?returncallback(newError('輸入不可以為空'));
?}
?setTimeout(() => {
?if(!Number(value)) {
??callback(newError('請(qǐng)輸入正整數(shù)'));
?} else{
??const re = /^[0-9]*[1-9][0-9]*$/;
??const rsCheck = re.test(value);
??if(!rsCheck) {
??callback(newError('請(qǐng)輸入正整數(shù)'));
??} else{
??callback();
??}
?}
?}, 0);
}
13、驗(yàn)證是否整數(shù),非必填
export function isIntegerNotMust(rule, value, callback) {
?if(!value) {
?callback();
?}
?setTimeout(() => {
?if(!Number(value)) {
??callback(newError('請(qǐng)輸入正整數(shù)'));
?} else{
??const re = /^[0-9]*[1-9][0-9]*$/;
??const rsCheck = re.test(value);
??if(!rsCheck) {
??callback(newError('請(qǐng)輸入正整數(shù)'));
??} else{
??callback();
??}
?}
?}, 1000);
}
14、 驗(yàn)證是否是[0-1]的小數(shù)
export function isDecimal(rule, value, callback) {
?if(!value) {
?returncallback(newError('輸入不可以為空'));
?}
?setTimeout(() => {
?if(!Number(value)) {
??callback(newError('請(qǐng)輸入[0,1]之間的數(shù)字'));
?} else{
??if(value < 0 || value > 1) {
??callback(newError('請(qǐng)輸入[0,1]之間的數(shù)字'));
??} else{
??callback();
??}
?}
?}, 100);
}
15、 驗(yàn)證是否是[1-10]的小數(shù),即不可以等于0
export function isBtnOneToTen(rule, value, callback) {
?if(typeofvalue == 'undefined') {
?returncallback(newError('輸入不可以為空'));
?}
?setTimeout(() => {
?if(!Number(value)) {
??callback(newError('請(qǐng)輸入正整數(shù),值為[1,10]'));
?} else{
??if(!(value == '1'|| value == '2'|| value == '3'|| value == '4'|| value == '5'|| value == '6'|| value == '7'|| value == '8'|| value == '9'|| value == '10')) {
??callback(newError('請(qǐng)輸入正整數(shù),值為[1,10]'));
??} else{
??callback();
??}
?}
?}, 100);
}
16、驗(yàn)證是否是[1-100]的小數(shù),即不可以等于0
export function isBtnOneToHundred(rule, value, callback) {
?if(!value) {
?returncallback(newError('輸入不可以為空'));
?}
?setTimeout(() => {
?if(!Number(value)) {
??callback(newError('請(qǐng)輸入整數(shù),值為[1,100]'));
?} else{
??if(value < 1 || value > 100) {
??callback(newError('請(qǐng)輸入整數(shù),值為[1,100]'));
??} else{
??callback();
??}
?}
?}, 100);
}
17、驗(yàn)證是否是[0-100]的小數(shù)
export function isBtnZeroToHundred(rule, value, callback) {
?if(!value) {
?returncallback(newError('輸入不可以為空'));
?}
?setTimeout(() => {
?if(!Number(value)) {
??callback(newError('請(qǐng)輸入[1,100]之間的數(shù)字'));
?} else{
??if(value < 0 || value > 100) {
??callback(newError('請(qǐng)輸入[1,100]之間的數(shù)字'));
??} else{
??callback();
??}
?}
?}, 100);
}
18、驗(yàn)證端口是否在[0,65535]之間
export function isPort(rule, value, callback) {
?if(!value) {
?returncallback(newError('輸入不可以為空'));
?}
?setTimeout(() => {
?if(value == ''|| typeof(value) == undefined) {
??callback(newError('請(qǐng)輸入端口值'));
?} else{
??const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
??const rsCheck = re.test(value);
??if(!rsCheck) {
??callback(newError('請(qǐng)輸入在[0-65535]之間的端口值'));
??} else{
??callback();
??}
?}
?}, 100);
}
19、驗(yàn)證端口是否在[0,65535]之間,非必填,isMust表示是否必填
export function isCheckPort(rule, value, callback) {
?if(!value) {
?callback();
?}
?setTimeout(() => {
?if(value == ''|| typeof(value) == undefined) {
??//callback(new Error('請(qǐng)輸入端口值'));
?} else{
??const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
??const rsCheck = re.test(value);
??if(!rsCheck) {
??callback(newError('請(qǐng)輸入在[0-65535]之間的端口值'));
??} else{
??callback();
??}
?}
?}, 100);
}
20、小寫(xiě)字母
export function validateLowerCase(val) {
?const reg = /^[a-z]+$/;
?returnreg.test(val);
}
22、兩位小數(shù)驗(yàn)證
const validateValidity = (rule, value, callback) => {
?if(!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)) {
?callback(newError('最多兩位小數(shù)!??!'));
?} else{
?callback();
?}
};
23、是否大寫(xiě)字母
export function validateUpperCase(val) {
?const reg = /^[A-Z]+$/;
?returnreg.test(val);
}
24、是否大小寫(xiě)字母
export function validatAlphabets(val) {
?const reg = /^[A-Za-z]+$/;
?returnreg.test(val);
}
25、密碼校驗(yàn)
export const validatePsdReg = (rule, value, callback) => {
?if(!value) {
?returncallback(newError('請(qǐng)輸入密碼'))
?}
?if(!/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/.test(value)) {
?callback(newError('請(qǐng)輸入6-20位英文字母、數(shù)字或者符號(hào)(除空格),且字母、數(shù)字和標(biāo)點(diǎn)符號(hào)至少包含兩種'))
?} else{
?callback()
?}
}
26、中文校驗(yàn)
export const validateContacts = (rule, value, callback) => {
?if(!value) {
?returncallback(newError('請(qǐng)輸入中文'))
?}
?if(!/^[\u0391-\uFFE5A-Za-z]+$/.test(value)) {
?callback(newError('不可輸入特殊字符'))
?} else{
?callback()
?}
}
27、身份證校驗(yàn)
export const ID = (rule, value, callback) => {
?if(!value) {
??returncallback(newError('身份證不能為空'))
?}
?if(! /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
??callback(newError('請(qǐng)輸入正確的二代身份證號(hào)碼'))
?} else{
??callback()
?}
}
28、 賬號(hào)校驗(yàn)
export const validateCode = (rule, value, callback) => {
?if(!value) {
?returncallback(newError('請(qǐng)輸入賬號(hào)'))
?}
?if(!/^(?![0-9]*$)(?![a-zA-Z]*$)[a-zA-Z0-9]{6,20}$/.test(value)) {
?callback(newError('賬號(hào)必須為6-20位字母和數(shù)字組合'))
?} else{
?callback()
?}
}
29 、純數(shù)字校驗(yàn)
export const validateNumber = (rule, value, callback) => {
?let numberReg = /^\d+$|^\d+[.]?\d+$/
?if(value !== '') {
??if(!numberReg.test(value)) {
???callback(newError('請(qǐng)輸入數(shù)字'))
??} else{
???callback()
??}
?} else{
??callback(newError('請(qǐng)輸入值'))
?}
}
30、最多一位小數(shù)
const onePoint = (rule, value, callback) => {
?if(!/^[0-9]+([.]{1}[0-9]{1})?$/.test(value)) {
?callback(newError('最多一位小數(shù)?。?!'));
?} else{
?callback();
?}