import _ from 'lodash';
|
import { FormItemRuleWithoutValidator } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
|
|
export class FormValidator {
|
/**
|
* 验证表单input-number 不为0
|
*/
|
static validatorNumberNotNull(value: any, ruleCfg: FormItemRuleWithoutValidator) {
|
console.log('value: ', value, typeof value);
|
// eslint-disable-next-line eqeqeq
|
if (!value) {
|
return Promise.reject(ruleCfg.message);
|
}
|
return Promise.resolve(true);
|
}
|
|
// static validatorRichEditor(value: any, ruleCfg: FormItemRuleWithoutValidator) {
|
// // eslint-disable-next-line eqeqeq
|
// const textEditorItem = value.filter((x) => x.type === EditorType.Text);
|
// if (textEditorItem.some((x) => !x.content)) {
|
// return Promise.reject(ruleCfg.message);
|
// }
|
// return Promise.resolve(true);
|
// }
|
static validatorWeMap(value: any, ruleCfg: FormItemRuleWithoutValidator) {
|
// eslint-disable-next-line eqeqeq
|
if (_.isEmpty(value) || Object.values(value).some((x) => !x)) {
|
return Promise.reject(ruleCfg.message);
|
}
|
return Promise.resolve(true);
|
}
|
static validatorArray(value: any, ruleCfg: FormItemRuleWithoutValidator) {
|
if (!_.isArray(value) || !value?.length) {
|
return Promise.reject(ruleCfg.message);
|
}
|
return Promise.resolve(true);
|
}
|
|
static validatorPriceVersion(
|
value: API.PriceVersionInfoItem[],
|
ruleCfg: FormItemRuleWithoutValidator
|
) {
|
if (value.some((x) => !x.chargeWay || !x.name || !x.price)) {
|
return Promise.reject(ruleCfg.message);
|
}
|
return Promise.resolve(true);
|
}
|
|
static validatorUrl(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (BoleRegExp.RegUrl.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
static validatorUrlWithRarameter(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (BoleRegExp.RegUrlWithParameter.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
static validatorSocietyCreditCode(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (!ruleCfg.required && !value) return Promise.resolve(true);
|
if (/^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
static validatorPhoneNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (BoleRegExp.RegPhoneNumber.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
static validatorTelNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (BoleRegExp.RegTelNumber.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
static validatorIDCard(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (BoleRegExp.RegIDCard.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
static validatorNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (BoleRegExp.RegNumber.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
|
static validatorEmail(value: string, ruleCfg: FormItemRuleWithoutValidator) {
|
if (!ruleCfg.required && !value) return Promise.resolve(true);
|
if (BoleRegExp.RegEmail.test(value)) {
|
return Promise.resolve(true);
|
}
|
return Promise.reject(ruleCfg.message);
|
}
|
}
|
|
export class BoleRegExp {
|
static RegIDCard =
|
/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
|
|
// static RegEmail =
|
// /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/;
|
static RegEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
/**只有手机 */
|
static RegPhoneNumber = /^1[3-9]\d{9}$/;
|
|
/**座机 + 手机*/
|
static RegTelNumber =
|
/(^(0[0-9]{2,3})?[-\s]?([2-9][0-9]{6,7})+([0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}[-\s]))?(1[3-9]\d{9})$)|(^(400)[-\s](\d{3})[-\s](\d{4})(.)(\d{1,4})$)|(^(400)(\d{3})(\d{4}$))/;
|
|
/**只有座机 */
|
static RegOnlyTelNumber =
|
/(^(0[0-9]{2,3})?[-\s]?([2-9][0-9]{6,7})+([0-9]{1,4})?$)|(^(400)[-\s](\d{3})[-\s](\d{4})(.)(\d{1,4})$)|(^(400)(\d{3})(\d{4}$))/;
|
|
static RegSocietyCreditCode = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g;
|
|
static RegNumber = /^\d+$/;
|
|
static RegFileName = /(.*\/)*([^.]+).*/gi;
|
|
static RegCanPreview = /png|jpg|jpeg|doc|docx|txt|ppsx|xlsx|xls|pdf/gi;
|
|
static RegDecimalNumber = /^\d+(\.\d{0,2}){0,1}$/;
|
|
static RegBankCard = /^\d{16,30}$/;
|
|
static RegUrl = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})(\/\w+)*\/?$/;
|
|
static RegUrlWithParameter =
|
/^((http|ftp|https):\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\\.,@?^=%&:/~\\+#]*[\w\-\\@?^=%&/~\\+#])?$/;
|
|
static RegUrlWithParameterExact =
|
/^((http|ftp|https):\/\/)[\w\-_]+(\.[\w\-_]+)+([\w\-\\.,@?^=%&:/~\\+#]*[\w\-\\@?^=%&/~\\+#])?$/;
|
}
|