我们将校验字符功能抽取到一个单独的工具模块。
手机号校验
大陆手机号码11位数,匹配格式:前三位固定格式+后8位任意数此方法中前三位格式有:13+任意数 * 15+除4的任意数 * 18+除1和4的任意数 * 17+除9的任意数 * 147
代码如下:
bool chinaPhoneNumber(String input) {
if (input == null || input.isEmpty) return false;
//手机正则验证
c String regexPhoneNumber =
"^((13[0-9])|(15[^4])|(166)|(17[0-8])|(18[0-9])|(19[8-9])|(147,145))\\d{8}\$";
return RegExp(regexPhoneNumber).hasMatch(input);
}
邮箱校验,代码如下
/// 检查邮箱格式
bool email(String input) {
if (input == null || input.isEmpty) return false;
// 邮箱正则
String regexEmail = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*\$";
return RegExp(regexEmail).hasMatch(input);
}
字符串校验(适用于密码和输入框字符校验),代码如下
bool checkStringLength(String input, int length) {
if (input == null || input.isEmpty) return false;
return input.length >= length;
}
————————————完美分割线————————————
以上校验是单独抽离到一个模块的,在需要使用的地方引入即可。
校验信息:
//校验手机号
if (!chinaPhoneNumber(
_mobileNumberController.value.text)) {
toastInfo(msg: '手机号输入有误');
return;
}
//校验字符串
if (!checkStringLength(
_passwordController.value.text, 6)) {
toastInfo(msg: '密码不能小于6位');
return;
}
//校验邮箱地址
if (!email(
_emailController.value.text, 6)) {
toastInfo(msg: '密码不能小于6位');
return;
}