46 lines
1.3 KiB
Dart
46 lines
1.3 KiB
Dart
abstract final class Validators {
|
|
static String? email(String? value) {
|
|
if (value == null || value.isEmpty) {
|
|
return '이메일을 입력해주세요';
|
|
}
|
|
final emailRegex = RegExp(
|
|
r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$',
|
|
);
|
|
if (!emailRegex.hasMatch(value)) {
|
|
return '올바른 이메일 형식이 아닙니다';
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static String? password(String? value) {
|
|
if (value == null || value.isEmpty) {
|
|
return '비밀번호를 입력해주세요';
|
|
}
|
|
if (value.length < 8) {
|
|
return '비밀번호는 8자 이상이어야 합니다';
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static String? required(String? value, [String? fieldName]) {
|
|
if (value == null || value.trim().isEmpty) {
|
|
return '${fieldName ?? '이 필드'}를 입력해주세요';
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static String? minLength(String? value, int min, [String? fieldName]) {
|
|
if (value == null || value.length < min) {
|
|
return '${fieldName ?? '이 필드'}는 $min자 이상이어야 합니다';
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static String? maxLength(String? value, int max, [String? fieldName]) {
|
|
if (value != null && value.length > max) {
|
|
return '${fieldName ?? '이 필드'}는 $max자 이하여야 합니다';
|
|
}
|
|
return null;
|
|
}
|
|
}
|