diff --git a/lib/login/register/starLock_register_logic.dart b/lib/login/register/starLock_register_logic.dart index 5796d422..91580d43 100755 --- a/lib/login/register/starLock_register_logic.dart +++ b/lib/login/register/starLock_register_logic.dart @@ -149,6 +149,35 @@ class StarLockRegisterLogic extends BaseGetXController { state.pwdIsOK && state.phoneOrEmailStr.value.isNotEmpty; } + // 在 StarLockRegisterLogic 类中添加 + bool validatePhoneOrEmailFormat() { + final String input = state.phoneOrEmailStr.value; + + if (state.isIphoneType.value) { + // 手机号验证:纯数字,长度合理 + if (input.isEmpty) { + showToast('请输入手机号'.tr); + return false; + } + if (!RegExp(r'^[0-9]+$').hasMatch(input)) { + showToast('手机号只能包含数字'.tr); + return false; + } + } else { + // 邮箱验证:必须包含@,格式正确 + if (input.isEmpty) { + showToast('请输入邮箱地址'.tr); + return false; + } + if (!input.contains('@')) { + showToast('邮箱地址必须包含@符号'.tr); + return false; + } + } + + return true; + } + @override void onReady() { super.onReady(); diff --git a/lib/login/register/starLock_register_xhj_page.dart b/lib/login/register/starLock_register_xhj_page.dart index c406d823..94262b22 100755 --- a/lib/login/register/starLock_register_xhj_page.dart +++ b/lib/login/register/starLock_register_xhj_page.dart @@ -210,6 +210,10 @@ class _StarLockRegisterPageState extends State { Obx(() => GestureDetector( onTap: (state.canSendCode.value && state.canResend.value) ? () async { + if (!logic.validatePhoneOrEmailFormat()) { + return; + } + // Navigator.pushNamed(context, Routers.safetyVerificationPage, arguments: {"countryCode":"+86", "account":state.phoneOrEmailStr.value}); final result = await Get.toNamed( Routers.safetyVerificationPage,