如何在Flutter中使用密码处理TextField验证 [英] How to handle TextField validation in password in Flutter

查看:2165
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆