UNPKG

gcl

Version:

码农村nodejs类库,完成解决回调陷阱,配置框架,IOC框架,统一多DB访问框架,可扩展日志框架和io/db/net/thread/pool 克隆表达式,加解密算法等等一系列基础类库和算法的实现

492 lines (460 loc) 10.8 kB
import V from "../common/tool"; /** * 限制参数满足条件 * @param {要判断的参数} value * @param {正则} regex * @param {错误说明} error * @param {是否必填} isRequire */ export const testRegex = (value, regex, error, key, isRequire = true) => { regex = regex.test ? regex : new RegExp(regex, "i"); const val = typeof value != "undefined" && value != null && ("" + value).length ? regex.test(value) ? false : error || `限制${key}参数需满足正则表达式要求:${regex}` : isRequire ? error || `限制${key}参数为必填` : false; if (!!val) { const e = new Error(val); e.status = 401; throw e; } return value; }; /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testNumber = (value, error, key, isRequire) => testRegex( value, /^([0-9]+\.{0,1}[0-9]{0,2})$/g, error || `限制${key}要求是数字`, key, isRequire ); /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testInt = (value, error, key, isRequire) => testRegex( value, /^([0-9]+)$/g, error || `限制${key}要求是正整数`, key, isRequire ); /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testLetter = (value, error, key, isRequire) => testRegex( value, /^([0-9]+)$/g, error || `限制${key}要求是正整数`, key, isRequire ); /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testPassword = (value, error, key, isRequire) => testRegex( value, /^(([a-zA-Z]|\w){5,17})$/g, error || `限制${key}要求满足密码要求`, key, isRequire ); /** * 限制参数满足是非空必填 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testRequired = (value, error) => testRegex(value, /^[\S\s]+$/g, error || ``, "", true); /** * 限制参数满足是身份证 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testCard = (value, error, key, isRequire) => testRegex( value, /^((\d{14}|\d{17})(\d|[a-zA-Z]))$/g, error || `限制${key}要求身份证`, key, isRequire ); /** * 限制参数满足是手机号 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testMobile = (value, error, key, isRequire) => testRegex( value, /^(1[3|4|5|6|7|8|9][0-9]\d{8})$/g, error || `限制${key}要求是手机号`, key, isRequire ); /** * 限制参数满足是座机 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testPhone = (value, error, key, isRequire) => testRegex( value, /^(\d{3}-\d{8}|\d{4}-\d{7})$/g, error || `限制${key}要求是座机号`, key, isRequire ); /** * 限制参数满足是网络地址 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testUrl = (value, error, key, isRequire) => testRegex( value, /^((http|https|ftp|ws):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$/g, error || `限制${key}要求是URL`, key, isRequire ); /** * 限制参数满足是电子邮箱 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testEmail = (value, error, key, isRequire) => testRegex( value, /^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)$/g, error || `限制${key}要求是邮箱`, key, isRequire ); /** * 限制参数满足是中文 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testChinese = (value, error, key, isRequire) => testRegex( value, /^([\u4e00-\u9fa5]{0,})$/g, error || `限制${key}要求是中文`, key, isRequire ); /** * 限制参数满足是QQ * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testQQ = (value, error, key, isRequire) => testRegex( value, /^([1-9]\d{4,12})$/g, error || `限制${key}要求是QQ号`, key, isRequire ); /** * 限制参数满足是邮政编码 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testZipCode = (value, error, key, isRequire) => testRegex( value, /^([1-9]\d{5}(?!\d))$/g, error || `限制${key}要求是邮编`, key, isRequire ); /** * 限制参数满足是IP * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testIP = (value, error, key, isRequire) => testRegex( value, /^(([\d+\.]{3}|[\d+\.]{5})\d+)$/g, error || `限制${key}要求是IP`, key, isRequire ); /** * 限制参数满足是金额(2位小数) * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testCurreny = (value, error, key, isRequire) => testRegex( value, /^(\d+\.\d{2})$/g, error || `限制${key}要求是金额`, key, isRequire ); /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testNumberOrNull = (value, error, key) => testRegex( value, /^([0-9]+\.{0,1}[0-9]{0,2})$/g, error || `限制${key}要求是数字`, key, false ); /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testIntOrNull = (value, error, key) => testRegex( value, /^([0-9]+)$/g, error || `限制${key}要求是正整数`, key, false ); /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testLetterOrNull = (value, error, key) => testRegex( value, /^([0-9]+)$/g, error || `限制${key}要求是正整数`, key, false ); /** * 限制参数满足是数字 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testPasswordOrNull = (value, error, key) => testRegex( value, /^(([a-zA-Z]|\w){5,17})$/g, error || `限制${key}要求满足密码要求`, key, false ); /** * 限制参数满足是身份证 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testCardOrNull = (value, error, key) => testRegex( value, /^((\d{14}|\d{17})(\d|[a-zA-Z]))$/g, error || `限制${key}要求身份证`, key, false ); /** * 限制参数满足是手机号 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testMobileOrNull = (value, error, key) => testRegex( value, /^(1[3|4|5|6|7|8|9][0-9]\d{8})$/g, error || `限制${key}要求是手机号`, key, false ); /** * 限制参数满足是座机 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testPhoneOrNull = (value, error, key) => testRegex( value, /^(\d{3}-\d{8}|\d{4}-\d{7})$/g, error || `限制${key}要求是座机号`, key, false ); /** * 限制参数满足是网络地址 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testUrlOrNull = (value, error, key) => testRegex( value, /^((http|https|ftp|ws):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$/g, error || `限制${key}要求是URL`, key, false ); /** * 限制参数满足是电子邮箱 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testEmailOrNull = (value, error, key) => testRegex( value, /^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)$/g, error || `限制${key}要求是邮箱`, key, false ); /** * 限制参数满足是中文 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testChineseOrNull = (value, error, key) => testRegex( value, /^([\u4e00-\u9fa5]{0,})$/g, error || `限制${key}要求是中文`, key, false ); /** * 限制参数满足是QQ * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testQQOrNull = (value, error, key) => testRegex( value, /^([1-9]\d{4,12})$/g, error || `限制${key}要求是QQ号`, key, false ); /** * 限制参数满足是邮政编码 * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testZipCodeOrNull = (value, error, key) => testRegex( value, /^([1-9]\d{5}(?!\d))$/g, error || `限制${key}要求是邮编`, key, false ); /** * 限制参数满足是IP * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testIPOrNull = (value, error, key) => testRegex( value, /^(([\d+\.]{3}|[\d+\.]{5})\d+)$/g, error || `限制${key}要求是IP`, key, false ); /** * 限制参数满足是金额(2位小数) * @param {要判断的值} value * @param {错误说明} error * @param {是否必填} isRequire */ export const testCurrenyOrNull = (value, error, key) => testRegex( value, /^(\d+\.\d{2})$/g, error || `限制${key}要求是金额`, key, false ); export default { testRegex, testNumber, testCard, testChinese, testCurreny, testEmail, testInt, testIP, testLetter, testMobile, testNumber, testPassword, testPhone, testQQ, testRequired, testUrl, testZipCode, testNumberOrNull, testCardOrNull, testCardOrNull, testChineseOrNull, testCurrenyOrNull, testEmailOrNull, testIntOrNull, testIPOrNull, testLetterOrNull, testMobileOrNull, testNumberOrNull, testPasswordOrNull, testPhoneOrNull, testQQOrNull, testUrlOrNull, testZipCodeOrNull, };