赞
踩
说明:
本文列出的特殊字符全部是英文字符(中文字符没有进行验证),有:
~ ! @ # $ % ^ & * ( ) _ + [ ] { } | \ ; : ' " , . / < > ?
正则匹配代码:
注意:英文状态下的方括号 [ ] 是需要转义的,即
- const reg2 =
- /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[~!#@$%^*&()_+{}\[\]|\\;:'",<.>\/?])[a-zA-Z\d~!#@$%^*&()_+{}\[\]|\\;:'",<.>\/?]*$/;
下面是完整代码,以及示意图:
- <template>
- <el-form
- ref="form"
- :model="user"
- status-icon
- :rules="rules"
- label-width="120px"
- >
- <el-form-item label="密 码:" prop="userPass">
- <el-input
- v-model.lazy="user.userPass"
- placeholder="请输入密码"
- ></el-input>
- </el-form-item>
- </el-form>
- </template>

- <script>
- data(){
- const reg2 =
- /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[~!#@$%^*&()_+{}\[\]|\\;:'",<.>\/?])[a-zA-Z\d~!#@$%^*&()_+{}\[\]|\\;:'",<.>\/?]*$/;
- const userPassValidate = (rule, value, callback) => {
- if (!value) {
- return callback(new Error("密码不能为空"));
- }
- setTimeout(() => {
- if (value.toString().length < 8 || value.toString().length > 32) {
- callback(new Error("密码长度要在8到32位之间"));
- } else if (!reg2.test(value)) {
- callback(new Error("必须包括数字、大小写字母以及特殊字符"));
- } else {
- console.log("rule---", rule);
- console.log("value+++", value);
- callback();
- }
- }, 0);
- };
- return {
- rules: {
- userPass: [
- { required: true, validator: userPassValidate, trigger: "change" },
- ],
- },
- };
- }
- </script>

1、没有大写字母:

正常:

2、没有小写:
正常:
3、没有特殊符号:

正常:
4、没有数字:
正常:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。