gcl
Version:
码农村nodejs类库,完成解决回调陷阱,配置框架,IOC框架,统一多DB访问框架,可扩展日志框架和io/db/net/thread/pool 克隆表达式,加解密算法等等一系列基础类库和算法的实现
492 lines (460 loc) • 10.8 kB
JavaScript
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,
};