diff --git a/package.json b/package.json
index 0737cfa..4762336 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,7 @@
"stylelint": "^9.3.0",
"stylelint-config-vusion": "^1.1.2",
"vue": "^2.6.10",
- "vue-cli-plugin-vusion": "^0.5.5",
+ "vue-cli-plugin-vusion": "^0.5.6",
"vue-template-compiler": "^2.6.10",
"vusion-hooks": "^0.2.2",
"vusion-utils": "^0.4.3"
diff --git a/src/components/u-validator.vue/docs/api.md b/src/components/u-validator.vue/docs/api.md
index 2009cc0..0eab266 100644
--- a/src/components/u-validator.vue/docs/api.md
+++ b/src/components/u-validator.vue/docs/api.md
@@ -13,6 +13,7 @@
| validating-options | Object | | 验证辅助对象。在 Rule 的 `validate` 方法中使用 |
| validating-value | Any | | 临时修改验证值 |
| validating-process | Function | | 验证前对值进行预处理 |
+| manual | Boolean | `false` | 是否采取手动验证。如果为`true`,则UValidator将不会在监听到子组件的`input`、`change`和`blur`事件后进行相应的验证。 |
### Computed
diff --git a/src/components/u-validator.vue/docs/rules.md b/src/components/u-validator.vue/docs/rules.md
index d3ebef5..50fa3ae 100644
--- a/src/components/u-validator.vue/docs/rules.md
+++ b/src/components/u-validator.vue/docs/rules.md
@@ -341,6 +341,22 @@ export default {
```
+#### noDuplicates(arg: any[]) input
+
+接受一个数组作为参数,验证数组中是否存在重复项。
+
+``` html
+
+
+ 水杯
+ 咖啡
+ 坚果
+ 毛巾
+ 毛巾
+
+
+```
+
### 类型判断
#### string input+blur
@@ -718,3 +734,352 @@ export default {
```
+
+#### alphaDash input+blur
+
+必须由字母或下划线组成。
+
+``` html
+
+
+
+```
+
+#### alphaNumDash input+blur
+
+必须由字母、数字或下划线组成。
+
+``` html
+
+
+
+```
+
+#### alphaSpaces input+blur
+
+必须由字母或空格组成。
+
+``` html
+
+
+
+```
+
+#### lowerCase input+blur
+
+不能出现大写字母。
+
+``` html
+
+
+
+```
+
+#### upperCase input+blur
+
+不能出现小写字母。
+
+``` html
+
+
+
+```
+
+#### halfWidth input+blur
+
+需要输入半角字符。
+
+``` html
+
+
+
+```
+
+#### fullWidth input+blur
+
+必须输入全角字符。
+
+``` html
+
+
+
+```
+
+#### ascii input+blur
+
+必须输入ascii字符。
+
+``` html
+
+
+
+```
+
+#### base64 blur
+
+必须输入base64编码。
+
+``` html
+
+
+
+```
+
+#### byteLength(min: number, max: number) input+blur
+
+输入字符串的字节长度范围限制。
+
+- `min`:最小字节长度
+- `max`:最大字节长度
+
+``` html
+
+
+
+```
+
+#### dataURI blur
+
+必须输入dataURI编码。
+
+``` html
+
+
+
+```
+
+#### divisibleBy(divisor: number) blur
+
+输入数字能否被相应除数整除。
+
+- `divisor`:除数
+
+``` html
+
+
+
+```
+
+#### hash(algorithm: string) blur
+
+输入编码是否符合指定哈希算法。
+
+- `algorithm`:算法名称,支持`md4`、`md5`、`sha1`、`sha256`、`sha384`、`sha512`、`ripemd128`、`ripemd160`、`tiger128`、`tiger160`、`tiger192`、`crc32`以及`crc32b`
+
+``` html
+
+
+
+```
+
+#### md5 blur
+
+输入编码是否符合md5算法。
+
+``` html
+
+
+
+```
+
+#### hex blur
+
+输入数字是否是十六进制。
+
+``` html
+
+
+
+```
+
+#### hexColor blur
+
+输入字符串是否是十六进制颜色码。
+
+``` html
+
+
+
+```
+
+#### creditCard blur
+
+输入信用卡号码是否合法。
+
+``` html
+
+
+
+```
+
+#### fqdn blur
+
+输入全限定域名是否合法。
+
+``` html
+
+
+
+```
+
+#### ipOrFQDN blur
+
+输入内容是否为一个合法IP或全限定域名。
+
+``` html
+
+
+
+```
+
+#### isbn(version: number) blur
+
+输入内容是否为一个合法的国际标准书号(ISBN)。
+
+- `version`:ISBN版本,接受`10`或`13`
+
+``` html
+
+
+
+```
+
+#### issn blur
+
+输入内容是否为一个合法的国际标准连续出版物号(ISSN)。
+
+``` html
+
+
+
+```
+
+#### isin blur
+
+输入内容是否为一个合法的国际证券识别码(ISIN)。
+
+``` html
+
+
+
+```
+
+#### iso8601(strict: boolean) blur
+
+输入内容是否为合法的ISO8601日期。
+
+- `strict`: 是否检测闰年日期。如果`strict`的值为`true`,则`2019-02-29`这样的日期属于非法日期
+
+``` html
+
+
+
+```
+
+#### iso31661Alpha2 blur
+
+输入内容是否为合法的ISO 3166-1 Alpha-2国家代码。
+
+``` html
+
+
+
+```
+
+#### iso31661Alpha3 blur
+
+输入内容是否为合法的ISO 3166-1 Alpha-3国家代码。
+
+``` html
+
+
+
+```
+
+#### json input+blur
+
+输入字符串是否可以被解析为JSON格式。
+
+``` html
+
+
+
+```
+
+#### jwt blur
+
+输入字符串是否为合法的JSON Web Token。
+
+``` html
+
+
+
+```
+
+#### latLong blur
+
+输入字符串是否为合法的经纬度坐标。
+
+``` html
+
+
+
+```
+
+#### mobile (locale?: any[], strict?: boolean) blur
+
+输入内容是否为合法的手机号。
+
+- `locale`:所在地区,例如`zh-CN`、`ja-JP`等。可以是一个字符串或数组。如果不填,则尝试自动匹配所有地区。
+
+- `strict`:是否检验国家代号。如果为`true`,则必须以`+`和国家代码开头。
+
+``` html
+
+
+
+```
+
+#### mongoId blur
+
+输入字符串是否为合法的MongoDB对象ID。
+
+``` html
+
+
+
+```
+
+#### postalCode(locale: string) blur
+
+输入字符串是否为合法的邮政编码。
+
+- `locale`:所在地区。例如`CH`、`JP`等。
+
+``` html
+
+
+
+```
+
+#### uuid(version?: number) blur
+
+输入字符串是否为合法的UUID。
+
+- `version`:采用的UUID版本。接受`3`、`4`和`5`。如果不填,则尝试自动匹配所有版本。
+
+``` html
+
+
+
+```
+
+#### chinese input+blur
+
+输入字符串是否为合法的中文内容。
+
+``` html
+
+
+
+```
\ No newline at end of file
diff --git a/src/components/u-validator.vue/index.js b/src/components/u-validator.vue/index.js
index 9f29687..65ba50e 100644
--- a/src/components/u-validator.vue/index.js
+++ b/src/components/u-validator.vue/index.js
@@ -26,6 +26,7 @@ export const UValidator = {
validatingOptions: Object,
validatingValue: null,
validatingProcess: { type: Function, default: (value) => value },
+ manual: { type: Boolean, default: false },
},
data() {
return {
@@ -161,7 +162,7 @@ export const UValidator = {
this.$nextTick(() => this.validate('submit', true).catch((errors) => errors));
},
onInput(value) {
- if (this.currentTarget === 'validatorVMs')
+ if (this.currentTarget === 'validatorVMs' || this.manual)
return;
if (!this.fieldTouched)
@@ -175,7 +176,7 @@ export const UValidator = {
});
},
onChange($event) {
- if (this.currentTarget === 'validatorVMs')
+ if (this.currentTarget === 'validatorVMs' || this.manual)
return;
if (!this.fieldTouched)
@@ -193,7 +194,7 @@ export const UValidator = {
this.currentMessage = this.message;
},
onBlur() {
- if (this.currentTarget === 'validatorVMs')
+ if (this.currentTarget === 'validatorVMs' || this.manual)
return;
if (!this.fieldTouched)