97 lines
2.7 KiB
JavaScript
97 lines
2.7 KiB
JavaScript
|
||
|
||
/**
|
||
* @description: 校验是否正数
|
||
* @param {Number} 必选,需要校验的数字
|
||
* @return: {Boolean} 返回校验结果
|
||
*/
|
||
export function isPositiveNum (value) {
|
||
if (typeof value !== 'number') {
|
||
return false
|
||
}
|
||
let positiveNumRegExp = /^[1-9]\d*(\.\d+)?$|^0\.\d+$/
|
||
return positiveNumRegExp.test(value)
|
||
}
|
||
|
||
/**
|
||
* @description: 校验是否Email格式
|
||
* @param {String} 必选,需要校验的Email
|
||
* @return: {Boolean} 返回校验结果
|
||
*/
|
||
export function isEmail (value) {
|
||
let emailRegExp = /^([A-Za-z0-9_\-.\u4e00-\u9fa5])+@([A-Za-z0-9_\-.])+\.([A-Za-z]{2,8})$/ // 匹配Email的正则表达式
|
||
return emailRegExp.test(value)
|
||
}
|
||
|
||
/**
|
||
* @description: 校验是否IP格式
|
||
* @param {String} 必选,需要校验的IP
|
||
* @return: {Boolean} 返回校验结果
|
||
*/
|
||
export function isIP (value) {
|
||
let ipRegExp = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/g // 匹配IP地址的正则表达式
|
||
if (ipRegExp.test(value) && RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256) {
|
||
return true
|
||
}
|
||
return false
|
||
}
|
||
|
||
/**
|
||
* @description: 将批量IP转换成以分隔符分割的字符串
|
||
* @param {String} 必选,需要转换的IP
|
||
* @param {String} 可选,分隔符,默认';',可自定义
|
||
* @return: {String} 返回转换后的IP字符串
|
||
*/
|
||
export function getIpString (value, split = ';') {
|
||
return value.trim().replace(/ |\r/g, '').replace(/\n|,|;|,|;/g, split) // 换行、中英文逗号、中英文分号隔开
|
||
}
|
||
|
||
/**
|
||
* @description: 配合Element UI的Rule,校验是否IP
|
||
* @return: {Funtion}
|
||
*/
|
||
const NOT_IP_TEXT = '请输入IP'
|
||
const CORRECT_IP_TEXT = '请输入正确的IP地址'
|
||
export function validateIP (rule, value, callback) {
|
||
if (!value && rule.required) {
|
||
return callback(new Error(NOT_IP_TEXT))
|
||
}
|
||
if (value && !isIP(value)) {
|
||
return callback(new Error(CORRECT_IP_TEXT))
|
||
}
|
||
return callback()
|
||
}
|
||
|
||
/**
|
||
* @description: 配合Element UI的Rule,批量校验是否IP
|
||
* @return: {Funtion}
|
||
*/
|
||
export function validateIPS (rule, value, callback) { // 校验IP的rule
|
||
if (!value && rule.required) {
|
||
return callback(new Error(NOT_IP_TEXT))
|
||
}
|
||
value = getIpString(value)
|
||
let ips = (value && value.split(';')) || []
|
||
let hasErrorIp = ips.some(ip => {
|
||
return !isIP(ip)
|
||
})
|
||
if (hasErrorIp) {
|
||
return callback(new Error(CORRECT_IP_TEXT))
|
||
}
|
||
return callback()
|
||
}
|
||
|
||
/**
|
||
* @description: 配合Element UI的Rule,校验是否Email格式
|
||
* @return: {Funtion}
|
||
*/
|
||
export function validateEmail (rule, value, callback) {
|
||
if (!value && rule.required) {
|
||
return callback(new Error('请输入E-mail'))
|
||
}
|
||
if (!isEmail(value)) {
|
||
return callback(new Error('请输入正确的E-mail'))
|
||
}
|
||
return callback()
|
||
}
|