TextInputFormatter篇
- 忽略特殊字符
import 'package:flutter/services.dart';
const _regExp=r"^[\u4E00-\u9FA5A-Za-z0-9_]+$";
//忽略特殊字符
class IgnoreOtherFormatter extends TextInputFormatter{
@override
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
if(newValue.text.length>0){
if(RegExp(_regExp).firstMatch(newValue.text)!=null){
return newValue;
}
return oldValue;
}
return newValue;
}
}
- 只能输入数字和小写字母
import 'package:flutter/services.dart';
const _regExp=r"^[Za-z0-9_]+$";
class onlyInputNumberAndLowWorkFormatter extends TextInputFormatter{
@override
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
if(newValue.text.length>0){
if(RegExp(_regExp).firstMatch(newValue.text)!=null){
return newValue;
}
return oldValue;
}
return newValue;
}
}
- 只能输入数字和字母
import 'package:flutter/services.dart';
const _regExp=r"^[ZA-ZZa-z0-9_]+$";
class onlyInputNumberAndWorkFormatter extends TextInputFormatter{
@override
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
if(newValue.text.length>0){
if(RegExp(_regExp).firstMatch(newValue.text)!=null){
return newValue;
}
return oldValue;
}
return newValue;
}
}
- 只能输入数字
WhitelistingTextInputFormatter.digitsOnly
- 长度限制(限制6位)
LengthLimitingTextInputFormatter(6)
- 限制单行
BlacklistingTextInputFormatter.singleLineFormatter
正则校验篇
///手机号验证
static bool isChinaPhoneLegal(String str) {
return RegExp(
r"^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$")
.hasMatch(str);
}
///邮箱验证
static bool isEmail(String str) {
return RegExp(
r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$")
.hasMatch(str);
}
目前所遇到的正则,后续会持续更新,欢迎评论
网友评论