/**
* Created by outside on 2017/04/28
*
* @todo 提供统一的正则表达式规则和校验状态
*/
const REGEX = {
// 数字正则 用于全数字的校验
number: /^(\d+)$/,
// 正整数正则 用于身高等的校验
integer: /^[0-9]+$/,
// 中文的正则 用于中文名称等的校验
chinese: /^[\u4e00-\u9fa5]+$/,
// 中文和空格的正则 用于中文名称等的校验
chineseSpace: /^[\u4e00-\u9fa5\u4dae\u0020\u36c3·]+$/,
// 电话号码正则 用于电话号码的校验
phone: /^1[3456789]\d{9}$/,
// 年龄正则 用于对年龄1~199年龄段的校验
age: /^[1-9][0-9]{0,2}$/,
// 身份证正则 用于身份证的校验
ID: /^\d{15}$|^\d{18}$|^\d{17}(\d|X|x)$/,
// 金钱正则 用于都金钱各式的校验 (0 0.01 1.00 正确) (0. 05 0.001 错误)
money: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
// 月份正则 用于月份的校验 1 01 11
month: /(^0?[1-9]$)|(^1[0-2]$)/,
// 去除空格
removeSpaces: /\s+/
};
const STATE = {
// 是否为全数字
isSpaces (str) {
return REGEX.removeSpaces.test(str);
},
// 是否为全数字
isNumber (str) {
return REGEX.number.test(str);
},
// 是否为纯正整数
isInteger (str) {
return REGEX.integer.test(str);
},
// 是否为纯中文
isChinese (str) {
return REGEX.chinese.test(str);
},
// 是否是中文和空格
isChineseSpace (str) {
return REGEX.chineseSpace.test(str);
},
// 是否为手机号码
isPhone (str) {
return REGEX.phone.test(str);
},
// 是否为年龄格式
isAge (str) {
return REGEX.age.test(str);
},
// 是否为身份证号
isID (str) {
return REGEX.ID.test(str);
},
// 是否为金钱各式
isMoney (str) {
return REGEX.money.test(str);
},
// 是否为月份各式
isMonth (str) {
return REGEX.month.test(str);
}
}
export default Object.assign(REGEX, STATE);