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