quality_frontend/packages/common/javascript/validate.js

97 lines
2.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @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()
}