如何在Flutter中使用密码处理TextField验证 [英] How to handle TextField validation in password in Flutter
本文介绍了如何在Flutter中使用密码处理TextField验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了一个登录页面,我需要将这些内容添加到我的密码中。如何带有验证警报消息?
I created a login page and I need to add these things to my password. How do I do it with validation alert message?
- 最小1个大写字母
- 最小1个小写字母
- 最小1个数字
- 最小1个特殊字符
- 通用允许字符(!@#$& *〜)
- Minimum 1 Upper case
- Minimum 1 lowercase
- Minimum 1 Numeric Number
- Minimum 1 Special Character
- Common Allow Character ( ! @ # $ & * ~ )
推荐答案
您需要使用正则表达式
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
此函数将验证传递的值是否具有结构。
This function will validate the passed value is having the structure or not.
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验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文