UNPKG

@2345mfe/octopus-validate

Version:

表单校验库

252 lines (246 loc) 7.17 kB
import OcStrategy from '../strategy/validateStrategy'; /** * 集合汇总-自定义校验 * * */ const OcValidator = { // ······【特殊自定义校验】········ /** * 判断是否相等,例如密码是否相同校验 * @param {*} data 需要被比较的值 * @param {string} message 错误提示文案 */ checkEqual: function (data, message) { return (rule, value, callback) => { if (value && data) { value === data ? callback() : callback(new Error(message)) } else { callback() } } }, /** * 判断开始时间必须比结束时间小 * @param {*} data 需要被比较的值 * @param {string} message 错误提示文案 */ checkStartTimeRange: function (data, message) { return (rule, value, callback) => { if (value && data) { new Date(value).getTime() < new Date(data).getTime() ? callback() : callback(new Error(message)) } else { callback() } } }, /** * 判断结束时间必须比开始时间大 * @param {*} data 需要被比较的值 * @param {string} message 错误提示文案 */ checkEndTimeRange: function (data, message) { return (rule, value, callback) => { if (value && data) { new Date(value).getTime() > new Date(data).getTime() ? callback() : callback(new Error(message)) } else { callback() } } }, /** * limit 以内的正整数 * @param {*} limit * @param {string} message 错误提示文案 */ checkNumLimit: function (limit, message) { const isNum = OcStrategy.posiInt; return (rule, value, callback) => { if (value) { isNum.test(value) && value <= limit ? callback() : callback(new Error(message)) } else { callback() } } }, /** * 校验数字范围,例如 10 - 99 * @param {number} min 最小值 * @param {number} max 最大值 * @param {string} message 错误提示文案 */ checkNumRange: function (min, max, message) { const isNum = OcStrategy.posiInt; return (rule, value, callback) => { if (value) { isNum.test(value) && value >= min && value <= max ? callback() : callback(new Error(message)) } else { callback() } } }, /** * 校验数字范围,如600以内 * @param {number} max 最大值 * @param {string} message 错误提示文案 */ checkNumMax: function (max, message) { const isNum = OcStrategy.posiInt; return (rule, value, callback) => { if (value) { isNum.test(value) && value <= max ? callback() : callback(new Error(message)) } else { callback() } } }, /** * 校验 * @param {} * */ nameCheck: limit => { return (rule, value, callback) => { if (!value) { callback(new Error(`请输入${limit}个以内的中英文字符`)) } else if (OcStrategy.nameEn.test(value) && value.length <= limit) { callback() } else { callback(new Error(`请输入${limit}个以内的中英文字符`)) } } }, /** * 校验 * @param {} * */ nameCheckNo: limit => { return (rule, value, callback) => { if (!value) { callback() } else if ((OcStrategy.nameEn.test(value) && value.length <= limit)) { callback() } else { callback(new Error(`请输入${limit}个以内的中英文字符或者不填`)) } } }, /** * 校验 * @param {} * */ numCheck: limit => { return (rule, value, callback) => { const posiInt = OcStrategy.posiInt; if (posiInt.test(value) && value <= limit) { callback() } else { callback(new Error(`请输入${limit}以内的整数`)) } } }, /** * 校验 * @param {} * */ num: limit => { return (rule, value, callback) => { if (/^\d+(\.\d+)?$/.test(value) || !value) { callback() } else { callback(new Error('请输入数字')) } } }, // ······【自定义校验】········ /** * 校验 * @param {} * */ isParseInt: (rule, value, callback) => { const posiInt = OcStrategy.posiInt; if (!value) { callback() } else { posiInt.test(value) ? callback() : callback(new Error('请输入整数')) } }, /** * 校验 * @param {} * */ maxIsParseInt: (rule, value, callback) => { const posiInt = OcStrategy.posiInt; posiInt.test(value) ? callback() : callback(new Error('请输入整数')) }, /** * 校验 * @param {} * */ number: (rule, value, callback) => { const posiInt = OcStrategy.posiInt; if (!value) { callback() } else { posiInt.test(value) ? callback() : callback(new Error('请输入整数')) } }, /** * 校验 * @param {} * */ timeLine: (rule, value, callback) => { const posiInt = OcStrategy.posiInt; posiInt.test(value) && value <= 600 ? callback() : callback(new Error('请输入600以内的整数')) }, /** * 校验 * @param {} * */ descLimit: (rule, value, callback) => { if (value && value.length > 200) { callback(new Error('请输入200个以内的字符')) } else { callback() } }, /** * 校验 * @param {} * */ detailLimit: (rule, value, callback) => { if (!value) { callback(new Error('请输入任务描述,最大不超过300个字符')) } else if (value && value.length > 300) { callback(new Error('请输入300个以内的字符')) } else { callback() } }, /** * 校验 * @param {} * */ checkStr: (rule, value, callback) => { // 校验是否含有中文逗号, const reg = OcStrategy.illegalCn if (!value) { callback() } else { reg.test(value) ? callback(new Error('输入的内容不能包含中文逗号')) : callback() } } }; export default OcValidator;