From 1c95c88a9715c98b2d84688f47bb6f5b6ae8320d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=82=A0=E9=9D=99=E8=90=9D=E8=8E=89?= Date: Wed, 29 Jun 2022 18:14:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(Form):=20=E6=B7=BB=E5=8A=A0=E5=86=85?= =?UTF-8?q?=E7=BD=AE=E6=A0=A1=E9=AA=8C=E6=96=B9=E6=B3=95whitespace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/form/demos/validator.vue | 1 + examples/form/form.md | 1 + src/form/form-model.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/examples/form/demos/validator.vue b/examples/form/demos/validator.vue index c764791f5d..4529a78f14 100644 --- a/examples/form/demos/validator.vue +++ b/examples/form/demos/validator.vue @@ -62,6 +62,7 @@ const rules = { account: [ { required: true, message: '姓名必填', type: 'error', trigger: 'blur' }, { required: true, message: '姓名必填', type: 'error', trigger: 'change' }, + { whitespace: true, message: '姓名不能为空' }, { min: 3, message: '输入字数应在3到6之间', type: 'error', trigger: 'blur' }, { max: 6, message: '输入字数应在3到6之间', type: 'error', trigger: 'blur' }, ], diff --git a/examples/form/form.md b/examples/form/form.md index a4bab00159..be71bf408f 100644 --- a/examples/form/form.md +++ b/examples/form/form.md @@ -78,6 +78,7 @@ min | Number / Boolean | - | 内置校验方法,校验值最小长度,如: number | Boolean | - | 内置校验方法,校验值是否为数字(1.2 、 1e5 都算数字),示例:`{ number: true, message: '请输入数字' }` | N pattern | Object | - | 内置校验方法,校验值是否符合正则表达式匹配结果,示例:`{ pattern: /@qq.com/, message: '请输入 QQ 邮箱' }`。TS 类型:`RegExp` | N required | Boolean | - | 内置校验方法,校验值是否已经填写。该值为 true,默认显示必填标记,可通过设置 `requiredMark: false` 隐藏必填标记 | N +whitespace | Boolean | - | 内置校验方法,校验值是否为空格。示例:`{ whitespace: true, message: '值不能为空' }` | N telnumber | Boolean | - | 内置校验方法,校验值是否为手机号码,校验正则为 `/^1[3-9]\d{9}$/`,示例:`{ telnumber: true, message: '请输入正确的手机号码' }` | N trigger | String | change | 校验触发方式。可选项:change/blur | N type | String | error | 校验未通过时呈现的错误信息类型,有 告警信息提示 和 错误信息提示 等两种。可选项:error/warning | N diff --git a/src/form/form-model.ts b/src/form/form-model.ts index d2d044eb2e..296db90458 100644 --- a/src/form/form-model.ts +++ b/src/form/form-model.ts @@ -32,6 +32,7 @@ const VALIDATE_MAP = { url: isURL, email: isEmail, required: (val: ValueType): boolean => !isValueEmpty(val), + whitespace: (val: ValueType): boolean => !(/^\s+$/.test(val) || val === ''), boolean: (val: ValueType): boolean => typeof val === 'boolean', max: (val: ValueType, num: number): boolean => (isNumber(val) ? val <= num : getCharacterLength(val) <= num), min: (val: ValueType, num: number): boolean => (isNumber(val) ? val >= num : getCharacterLength(val) >= num),