| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // 修改密码格式校验
- import 'package:flutter/material.dart';
- import '../../l10n/app_localizations.dart';
- bool isValidPassword(String value) {
- final reg = RegExp(
- r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,16}$',
- );
- return reg.hasMatch(value);
- }
- String? validateForm({
- required BuildContext context, // 添加 context 参数
- required String phone,
- required String code,
- required String password,
- required String confirmPassword,
- }) {
- final l10n = AppLocalizations.of(context)!;
- if (phone.isEmpty) return l10n.phoneNumberRequired;
- if (!RegExp(r'^1\d{10}$').hasMatch(phone)) {
- return l10n.phoneNumberInvalid;
- }
- if (code.isEmpty) return l10n.smsCodeRequired;
- if (!RegExp(r'^\d{4}$').hasMatch(code)) {
- return l10n.smsCodeInvalid;
- }
- if (password.isEmpty) return l10n.newPasswordRequired;
- if (!isValidPassword(password)) {
- return l10n.passwordFormatError;
- }
- if (confirmPassword.isEmpty) return l10n.confirmPasswordRequired;
- if (password != confirmPassword) {
- return l10n.confirmPasswordError;
- }
- return null;
- }
|