import 'formatter.dart'; class Validators { static final RegExp _emailRegExp = RegExp( r'^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$', ); static final RegExp _passwordRegExp = RegExp( r'^.{4,8}$', ); static isValidEmail(String email) { return _emailRegExp.hasMatch(email); } static isValidPassword(String password) { return _passwordRegExp.hasMatch(password); } static isValidName(String name) { return name.isNotEmpty; } // static String? validateNotNullOrEmpty(String value, String errorMessage) { // if (value.length == 0) { // return errorMessage; // } else { // return null; // } // } static String? validateNotNullOrEmpty(String? value, String errorMessage) { if (!stringNotNullOrEmpty(value)) { return errorMessage; } return null; } static String? validNumberOrEmpty(String value, String errorMessage) { try { if (value.isEmpty) return errorMessage; var doubleValue = value.parseDoubleThousand(); if (doubleValue > 0) { return null; } else { return errorMessage; } } catch (_) { return errorMessage; } } static bool stringNotNullOrEmpty(String? value) { if (value == null) { return false; } else if (value.trim().isEmpty) { return false; } else { return true; } } static String? validateEmail(String value) { String pattern = r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$'; RegExp regExp = new RegExp(pattern); if (value.length == 0) { return "Nhập email"; } else if (!regExp.hasMatch(value)) { return "Email không đúng"; } else { return null; } } String? validateNewPassword(String? value) { if (value?.length == 0) { return "Nhập mật khẩu mới"; } else { return null; } } String? validateConfirmPassword(String newPassword, String value) { if (value.length == 0) { return "Nhập lại mật khẩu mới"; } else if (newPassword != value) { return "Mật khẩu không trùng khớp"; } else { return null; } } } final validators = Validators();