/** * 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);