common_utils.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // 修改密码格式校验
  2. import 'package:flutter/material.dart';
  3. import '../../l10n/app_localizations.dart';
  4. bool isValidPassword(String value) {
  5. final reg = RegExp(
  6. r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,16}$',
  7. );
  8. return reg.hasMatch(value);
  9. }
  10. String? validateForm({
  11. required BuildContext context, // 添加 context 参数
  12. required String phone,
  13. required String code,
  14. required String password,
  15. required String confirmPassword,
  16. }) {
  17. final l10n = AppLocalizations.of(context)!;
  18. if (phone.isEmpty) return l10n.phoneNumberRequired;
  19. if (!RegExp(r'^1\d{10}$').hasMatch(phone)) {
  20. return l10n.phoneNumberInvalid;
  21. }
  22. if (code.isEmpty) return l10n.smsCodeRequired;
  23. if (!RegExp(r'^\d{4}$').hasMatch(code)) {
  24. return l10n.smsCodeInvalid;
  25. }
  26. if (password.isEmpty) return l10n.newPasswordRequired;
  27. if (!isValidPassword(password)) {
  28. return l10n.passwordFormatError;
  29. }
  30. if (confirmPassword.isEmpty) return l10n.confirmPasswordRequired;
  31. if (password != confirmPassword) {
  32. return l10n.confirmPasswordError;
  33. }
  34. return null;
  35. }