Kaynağa Gözat

密码正则校验

zhuhao 2 yıl önce
ebeveyn
işleme
5f78d5c6b6
2 değiştirilmiş dosya ile 45 ekleme ve 17 silme
  1. 18 3
      src/views/layout/components/UserBar.vue
  2. 27 14
      src/views/user/index.vue

+ 18 - 3
src/views/layout/components/UserBar.vue

@@ -49,6 +49,20 @@ export default {
         callback()
       }
     }
+    const isPassword = (rule, value, callback) => {
+      if (value) {
+          //校验特殊字符 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[`~!#$%^&*()_\-+=<>?:\"{}|,.\/;'\\[\]]).{6,}$
+          let reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[`~!#$%^&*()_\-+=<>?:\"{}|,.\/;'\\[\]·!@¥……()——【】、:;‘’“”,。/《》? ]).{6,}$/
+          let re = new RegExp(reg)
+          if (re.test(value)) {
+            callback()
+          } else {
+            callback(new Error('密码必须包含大小写字母、数字、特殊字符且长度至少为六位的组合'))
+          }
+        } else {
+          callback(new Error('请输入新密码'))
+        }
+      };
     return {
       changePwdDialogVisible: false,
       btnLoading: false,
@@ -62,10 +76,11 @@ export default {
           required: true,
           message: '请输入旧密码'
         },
-        newPassword: {
+        newPassword: [{
           required: true,
-          message: '请输入新密码'
-        },
+          validator: isPassword,
+          trigger: 'blur',
+        }],
         repeat: [{ validator: validateRepeat, trigger: 'blur', required: true }]
       }
     }

+ 27 - 14
src/views/user/index.vue

@@ -482,19 +482,32 @@
 		},
 		
 		data() {
-			const isMobile = (rule, value, callback) => {
-				if(value){
-					var reg = /(^((\+86)|(86))?(1[3-9])\d{9}$)|(^(0\d{2,3})-?(\d{7,8})$)/
-					var re = new RegExp(reg)
-					if(re.test(value)){
-						callback()
-					}else{
-						callback(new Error('输入的手机号码格式不正确,请重新输入'))
-					}
-				}else{
-					callback()
-				}
-			}
+      const isMobile = (rule, value, callback) => {
+        if (value) {
+          var reg = /(^((\+86)|(86))?(1[3-9])\d{9}$)|(^(0\d{2,3})-?(\d{7,8})$)/
+          var re = new RegExp(reg)
+          if (re.test(value)) {
+            callback()
+          } else {
+            callback(new Error('输入的手机号码格式不正确,请重新输入'))
+          }
+        } else {
+          callback()
+        }
+      };
+      const isPassword = (rule, value, callback) => {
+        if (value) {
+          let reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[`~!#$%^&*()_\-+=<>?:\"{}|,.\/;'\\[\]·!@¥……()——【】、:;‘’“”,。/《》? ]).{6,}$/
+          let re = new RegExp(reg)
+          if (re.test(value)) {
+            callback()
+          } else {
+            callback(new Error('密码必须包含大小写字母、数字、特殊字符且长度至少为六位的组合'))
+          }
+        } else {
+          callback(new Error('请输入密码'))
+        }
+      };
 			return {
 				disabled:false,
 				pswdshow: false,
@@ -552,7 +565,7 @@
 				rules: {
 					name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
 					username: [{ required: true, message: "请输入账号", trigger: "blur" }],
-					password: [{ required: true, message: "请输入密码", trigger: "blur" }],
+					password: [{ required: true, validator:isPassword, trigger: "blur" }],
 					mobile: [
 						{ required: false, validator:isMobile, trigger: "blur" },
 						// {