如何在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

回到顶部