如何在Flutter中使用密码处理TextField验证
我创建了一个登录页面,需要将这些内容添加到我的密码中。如何
- 至少1个大写字母
- 至少1个小写字母
- 最少1个数字
- 至少1个特殊字符
- 通用允许字符(!@#$&*〜)
回答:
您需要使用正则表达式来验证结构。
bool validateStructure(String value){ String pattern = r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#\$&*~]).{8,}$';
RegExp regExp = new RegExp(pattern);
return regExp.hasMatch(value);
}
output:
Vignesh123! : true
vignesh123 : false
VIGNESH123! : false
vignesh@ : false
12345678? : false
此函数将验证传递的值是否具有结构。
var _usernameController = TextEditingController(); String _usernameError;
...
@override
Widget build(BuildContext context) {
return
...
TextFormField(
controller: _usernameController,
decoration: InputDecoration(
hintText: "Username", errorText: _usernameError),
style: TextStyle(fontSize: 18.0),
),
Container(
width: double.infinity,
height: 50.0,
child: RaisedButton(
onPressed: validate,
child: Text(
"Login",
style: TextStyle(color: Colors.white),
),
color: Theme.of(context).primaryColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(50.0),
),
),
),
...
}
...
validate(){
if(!validateStructure(_usernameController.text)){
setState(() {
_usernameError = emailError;
_passwordError = passwordError;
});
// show dialog/snackbar to get user attention.
return;
}
// Continue
}
以上是 如何在Flutter中使用密码处理TextField验证 的全部内容, 来源链接: utcz.com/qa/435261.html