|
|
|
|
@ -60,8 +60,25 @@ class UpdatePwdActivity : BaseBindingActivity<ActivityUpdatePwdBinding>() { |
|
|
|
|
toast("新密码输入不一致") |
|
|
|
|
return@setOnClickNoRepeatListener |
|
|
|
|
} |
|
|
|
|
if (!isValidPassword(newPassword)){ |
|
|
|
|
toast("密码需包含大写、小写、数字、特殊字符至少3种且长度12位以上") |
|
|
|
|
return@setOnClickNoRepeatListener |
|
|
|
|
} |
|
|
|
|
viewModel.updatePassword(oldPassword, newPassword) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun isValidPassword(password: String): Boolean { |
|
|
|
|
if (password.length < 12) return false |
|
|
|
|
|
|
|
|
|
val criteriaCount = listOf( |
|
|
|
|
Regex(".*[A-Z].*"), // 大写字母 |
|
|
|
|
Regex(".*[a-z].*"), // 小写字母 |
|
|
|
|
Regex(".*\\d.*"), // 数字 |
|
|
|
|
Regex(".*[!@#\$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?].*") // 特殊字符 |
|
|
|
|
).count { it.matches(password) } |
|
|
|
|
|
|
|
|
|
return criteriaCount >= 3 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |