- validate.js文件中使用函数柯里化方式,生成验证规则, curryingCheck函数返回的函数是 真正的 验证函数
/**
* @desc 柯里化验证
* @param 验证规则, 返回函数的参数是待验证的字符
* @return fun
*/
function curryingCheck(reg) {
return function(text) {
return reg.test(text)
}
}
// 手机号正则表达式
const phone = /^1\d{10}$/;
// 手机号正则表达式(强校验)
export const phoneStrong = /^(13[0-9]{9})|(15[0-9]{9})|(17[0-9]{9})|(18[0-9]{9})|(19[0-9]{9})$/;
// 固话正则表达式
const tel = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})(-| )?)?([0-9]{7,8})((-| |转)*([0-9]{1,4}))?$/;
// 邮箱正则表达式
const email = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
// 网址正则表达式
const url = /(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/;
// 数字正则表达式
const number = /^[0-9]+\.?[0-9]*$/;
// 整数正则表达式
const digits = /^-?\d+$/;
// 日期正则表达式
const date = /^(\d{4})[-/](\d{1}|0\d{1}|1[0-2])([-/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/;
// 身份证正则表达式
const identity = /(^\d{15}$)|(^\d{17}(x|X|\d)$)/;
// 正整数正则表达式
const digitsP = /^[1-9]\d*$/;
// 负整数正则表达式
const digitsN = /^-[1-9]\d*$/;
// 非负整数(正整数或0)正则表达式
const digitsPZ = /^\d+$/;
// 非正整数(负整数或0)正则表达式
const digitsNZ = /^-[1-9]\d*|0/;
// 中文正则表达式
const chinese = /^[\u4E00-\u9FA5]{2,4}$/;
// 端口号正则表达式
const port = /^([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])$/;
// IP正则表达式
const ip = /^(\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])$/;
// 经度正则表达式
const longitude = /^[-|+]?(0?\d{1,2}\.\d{1,5}|1[0-7]?\d{1}\.\d{1,5}|180\.0{1,5})$/;
// 纬度正则表达式
const latitude = /^[-|+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/;
export default {
/**
* @desc 是否是手机号
* @param value
* @returns fun
*/
isPhone: curryingCheck(phone),
/**
* @desc 是否为固话
* @param value
* @returns fun
*/
isTel: curryingCheck(tel),
/**
* @desc 是否是邮箱
* @param value
* @returns fun
*/
isEmail: curryingCheck(email),
/**
* @desc 是否是网址
* @param value
* @returns fun
*/
isUrl: curryingCheck(url),
/**
* @desc 是否是数字
* @param value
* @returns fun
*/
isNumber: curryingCheck(number),
/**
* @desc 是否是整数
* @param value
* @returns fun
*/
isDigits: curryingCheck(digits),
/**
* @desc 是否是正整数
* @param value
* @returns fun
*/
isDigitsP: curryingCheck(identity),
/**
* @desc 是否是负整数
* @param value
* @returns fun
*/
isDigitsN: curryingCheck(digitsN),
/**
* @desc 是否是非负整数(正整数或0)
* @param value
* @returns fun
*/
isDigitsPZ: curryingCheck(digitsPZ),
/**
* @desc 是否是非正整数(负整数或0)
* @param value
* @returns
*/
isDigitsNZ: curryingCheck(digitsNZ),
/**
* @desc 是否是日期
* @param value
* @returns fun
*/
isDate: curryingCheck(date),
/**
* @desc 是否是身份证
* @param value
* @returns fun
*/
isIdentity: curryingCheck(identity),
/**
* @desc 是否是中文
* @param value
* @returns fun
*/
isChinese: curryingCheck(chinese),
/**
* @desc 是否是端口号
* @param value
* @returns fun
*/
isPort: curryingCheck(port),
/**
* @desc 是否是IP
* @param value
* @returns fun
*/
isIP: curryingCheck(ip),
/**
* @desc 是否是经度 -180.0~+180.0(整数部分为0~180,必须输入1到5位小数)
* @param value
* @returns fun
*/
isLongitude: curryingCheck(longitude),
/**
* @desc 是否是纬度 -90.0~+90.0(整数部分为0~90,必须输入1到5位小数)
* @param value
* @returns fun
*/
isLatitude: curryingCheck(latitude)
}