我們將校驗字符功能抽取到一個單獨的工具模塊厨内。
手機號校驗
大陸手機號碼11位數(shù),匹配格式:前三位固定格式+后8位任意數(shù)此方法中前三位格式有:13+任意數(shù) * 15+除4的任意數(shù) * 18+除1和4的任意數(shù) * 17+除9的任意數(shù) * 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;
? ? ? ? ? ? ? ? ? ? }