Browse Source

请输入8-16位数由数字、大小写字母组成的密码

lifanagju_citu 6 months ago
parent
commit
7d929744a9
1 changed files with 8 additions and 2 deletions
  1. 8 2
      src/views/login/components/passwordPage.vue

+ 8 - 2
src/views/login/components/passwordPage.vue

@@ -38,15 +38,15 @@
       prepend-inner-icon="mdi-lock-outline" 
       :append-inner-icon="passwordType ? 'mdi-eye-outline' : 'mdi-eye-off-outline'"
       :type="passwordType ? 'text' : 'password'"
-      :rules="[v=> !!v || $t('login.enterPassword')]"
       @click:append-inner="passwordType = !passwordType"
+      :rules="[v=> !!v || $t('login.enterPassword'), validPassword]"
       @keyup.enter="handleEnter"
     ></v-text-field>
   </v-form>
 </template>
 
 <script setup name="passwordPage">
-import { ref, reactive } from 'vue'
+import { ref, reactive, computed } from 'vue'
 defineOptions({ name: 'password-form' })
 import { checkEmail } from '@/utils/validate'
 import { useI18n } from '@/hooks/web/useI18n'
@@ -93,6 +93,12 @@ if (props.validEmail) {
 //   currentArea.value = e.value
 // }
 
+// 密码效验
+const regex = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,16}$/
+const validPassword = computed(() => {
+  return regex.test(loginData.password) || '请输入8-16位数由数字、大小写字母组成的密码'
+})
+
 const loginUserPhone = localStorage.getItem('loginUserPhone') || ''
 const loginData = reactive({
   phone: loginUserPhone, // 13229740092