42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
class RegularExpression {
|
||
bool isPhoneNumber(String input) {
|
||
// 手机号正则表达式,这里简化为11位数字
|
||
final RegExp phoneRegExp = RegExp(r'^\d{11}$');
|
||
return phoneRegExp.hasMatch(input);
|
||
}
|
||
|
||
bool isEmail(String input) {
|
||
// 邮箱正则表达式,这里简化为常见格式
|
||
final RegExp emailRegExp =
|
||
RegExp(r'^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$');
|
||
return emailRegExp.hasMatch(input);
|
||
}
|
||
|
||
static RegExp urlRegExp = RegExp(
|
||
r'https?:\/\/\S+',
|
||
caseSensitive: false,
|
||
);
|
||
|
||
// 验证登录密码是否至少包含数字、字母、符号中的两种
|
||
bool validateString(String value) {
|
||
// 正则表达式
|
||
RegExp regExpNum = RegExp(r'\d'); // 数字
|
||
RegExp regExpLetter = RegExp(r'[a-zA-Z]'); // 字母
|
||
RegExp regExpSymbol = RegExp(r'[!@#\$&*~]'); // 符号
|
||
|
||
// 将字符串与每个正则表达式进行比较
|
||
bool hasNum = regExpNum.hasMatch(value);
|
||
bool hasLetter = regExpLetter.hasMatch(value);
|
||
bool hasSymbol = regExpSymbol.hasMatch(value);
|
||
|
||
// 计算匹配的数量
|
||
int count = 0;
|
||
if (hasNum) count++;
|
||
if (hasLetter) count++;
|
||
if (hasSymbol) count++;
|
||
|
||
// 如果数量大于或等于2,返回true
|
||
return count >= 2;
|
||
}
|
||
}
|