diff --git a/src/screens/auth/ForgotPasswordScreen.tsx b/src/screens/auth/ForgotPasswordScreen.tsx index 3049063..dafa722 100644 --- a/src/screens/auth/ForgotPasswordScreen.tsx +++ b/src/screens/auth/ForgotPasswordScreen.tsx @@ -115,8 +115,20 @@ export const ForgotPasswordScreen: React.FC = () => { showPrompt({ title: '提示', message: '请输入验证码', type: 'warning' }); return; } - if (newPassword.length < 6) { - showPrompt({ title: '提示', message: '新密码至少 6 位', type: 'warning' }); + if (newPassword.length < 8) { + showPrompt({ title: '提示', message: '新密码至少 8 位', type: 'warning' }); + return; + } + if (!/[A-Z]/.test(newPassword)) { + showPrompt({ title: '提示', message: '新密码必须包含大写字母', type: 'warning' }); + return; + } + if (!/[a-z]/.test(newPassword)) { + showPrompt({ title: '提示', message: '新密码必须包含小写字母', type: 'warning' }); + return; + } + if (!/[0-9]/.test(newPassword)) { + showPrompt({ title: '提示', message: '新密码必须包含数字', type: 'warning' }); return; } if (newPassword !== confirmPassword) { diff --git a/src/screens/auth/LoginScreen.tsx b/src/screens/auth/LoginScreen.tsx index a8a1271..a25337d 100644 --- a/src/screens/auth/LoginScreen.tsx +++ b/src/screens/auth/LoginScreen.tsx @@ -84,10 +84,6 @@ export const LoginScreen: React.FC = () => { showPrompt({ title: '提示', message: '请输入密码', type: 'warning' }); return false; } - if (password.length < 6) { - showPrompt({ title: '提示', message: '密码长度不能少于6位', type: 'warning' }); - return false; - } return true; }; diff --git a/src/screens/auth/RegisterStep3Profile.tsx b/src/screens/auth/RegisterStep3Profile.tsx index c1d6617..77a3f6d 100644 --- a/src/screens/auth/RegisterStep3Profile.tsx +++ b/src/screens/auth/RegisterStep3Profile.tsx @@ -60,8 +60,14 @@ export const RegisterStep3Profile: React.FC = ({ if (!formData.password) { newErrors.password = '请输入密码'; - } else if (formData.password.length < 6) { - newErrors.password = '密码长度不能少于6位'; + } else if (formData.password.length < 8) { + newErrors.password = '密码长度不能少于8位'; + } else if (!/[A-Z]/.test(formData.password)) { + newErrors.password = '密码必须包含大写字母'; + } else if (!/[a-z]/.test(formData.password)) { + newErrors.password = '密码必须包含小写字母'; + } else if (!/[0-9]/.test(formData.password)) { + newErrors.password = '密码必须包含数字'; } if (formData.password !== formData.confirmPassword) { @@ -172,7 +178,7 @@ export const RegisterStep3Profile: React.FC = ({ })} {/* 密码 */} - {renderInput('密码', 'password', '至少6位', { + {renderInput('密码', 'password', '至少8位,含大小写字母和数字', { secureTextEntry: true, showToggle: true, toggleValue: showPassword, diff --git a/src/screens/profile/AccountSecurityScreen.tsx b/src/screens/profile/AccountSecurityScreen.tsx index 13cad11..67ce997 100644 --- a/src/screens/profile/AccountSecurityScreen.tsx +++ b/src/screens/profile/AccountSecurityScreen.tsx @@ -149,8 +149,20 @@ export const AccountSecurityScreen: React.FC = () => { showPrompt({ title: '提示', message: '请输入邮箱验证码', type: 'warning' }); return; } - if (newPassword.length < 6) { - showPrompt({ title: '提示', message: '新密码至少 6 位', type: 'warning' }); + if (newPassword.length < 8) { + showPrompt({ title: '提示', message: '新密码至少 8 位', type: 'warning' }); + return; + } + if (!/[A-Z]/.test(newPassword)) { + showPrompt({ title: '提示', message: '新密码必须包含大写字母', type: 'warning' }); + return; + } + if (!/[a-z]/.test(newPassword)) { + showPrompt({ title: '提示', message: '新密码必须包含小写字母', type: 'warning' }); + return; + } + if (!/[0-9]/.test(newPassword)) { + showPrompt({ title: '提示', message: '新密码必须包含数字', type: 'warning' }); return; } if (newPassword !== confirmPassword) { @@ -297,7 +309,7 @@ export const AccountSecurityScreen: React.FC = () => {