UNPKG

@truenewx/tnxcore

Version:

互联网技术解决方案:JavaScript核心扩展支持

65 lines (58 loc) 2.73 kB
const messages = { required: '{0}不能为空', notNull: '{0}不能为空', notEmpty: '{0}不能为空', notBlank: '{0}不能为空', maxLength: '{0}长度最多可以有{1}位,已超出{2}位', minLength: '{0}长度最少必须有{1}位,还缺少{2}位', number: '{0}必须为数字', integer: '{0}必须为整数', integerLength: '{0}整数位最多可以有{1}位,已超出{2}位', scale: '{0}小数位最多可以有{1}位,已超出{2}位', maxValue: '{0}最大可以为{1}', minValue: '{0}最小可以为{1}', email: '{0}不是正确的Email地址格式', idCardNo: '{0}不是正确的身份证号码格式', url: '{0}应为格式正确的网址链接绝对路径', opposableUrl: '{0}应为格式正确的网址链接绝对路径或相对路径', regex: '{0}格式错误{1}', notContains: '{0}不能包含:{1}', rejectHtmlTags: '{0}不能包含任何html标签', allowedHtmlTags: '{0}只能包含html标签:{1},不可使用其它html标签', forbiddenHtmlTags: '{0}不能包含html标签:{1},可以使用其它html标签', cellphone: '{0}不是正确的手机号码格式', } const regExps = { number: /^-?([1-9]\d{0,2}((,?\d{3})*|\d*)(\.\d*)?|0?\.\d*|0)$/, integer: /^(-?[1-9]\d{0,2}(,?\d{3}))|0*$/, email: /^[a-zA-Z0-9_-]([a-zA-Z0-9_\-.]{0,62})@[a-zA-Z0-9_-]([a-zA-Z0-9_\-.]{0,62})$/, idCardNo: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/, url: /^https?:\/\/[A-Za-z0-9]+(\.?[A-Za-z0-9_-]+)*(:[0-9]+)?(\/\S*)?$/, opposableUrl: /^(https?:\/)?\/[A-Za-z0-9]+(\.?[A-Za-z0-9_-]+)*(:[0-9]+)?(\/\S*)?$/, cellphone: /^1[3-9][0-9]{9}$/, } export default class Validator { getErrorMessage(validationName: string, fieldCaption: string = '', ...args: any[]): string { let message = messages[validationName]; if (message) { message = message.replace('{0}', fieldCaption); for (let i = 0; i < args.length; i++) { message = message.replace('{' + (i + 1) + '}', args[i]); } } return message; } testRegExp(regExpName: string, fieldValue: string) { if (fieldValue) { let regExp = regExps[regExpName]; return regExp && regExp.test(fieldValue); } return false; } validateRegExp(regExpName: string, fieldValue: string, fieldCaption?: string): string | undefined { if (!this.testRegExp(regExpName, fieldValue)) { return this.getErrorMessage(regExpName, fieldCaption); } return undefined; } }