我在写电子邮件并进行颤抖验证时如何放置(真实图标)

问题描述 投票:-1回答:1

在输入电子邮件以通过电子邮件正则表达式进行验证时,如何放置图标以及密码的强度?

TextFormField(
                    controller: _emailController,
                    textAlign: TextAlign.end,
                    decoration: InputDecoration(
                        hintStyle: TextStyle(fontSize: 16),
                        hintText: "[email protected]",
                        fillColor: Colors.grey[200],
                        filled: true,
                        border: OutlineInputBorder(
                            borderSide: BorderSide(
                              width: 0,
                              style: BorderStyle.none,
                            ),
                            borderRadius: BorderRadius.circular(14))),
                    onSaved: (String value) {
                      email = value;
                    },
                    validator: _validateEmail,
                    keyboardType: TextInputType.emailAddress,
                  ),
                    Padding(
                    padding: const EdgeInsets.fromLTRB(0, 0, 20, 0),
                    child: Text(
                      "كلمة المرور",
                      textAlign: TextAlign.right,
                      style: TextStyle(
                          fontWeight: FontWeight.bold, fontSize: 16),
                    ),
                  ),
                  new TextFormField(
                    controller: _passwordController,
                    textAlign: TextAlign.end,
                    keyboardType: TextInputType.visiblePassword,
                    decoration: InputDecoration(
                        prefixIcon: new GestureDetector(
                            onTap: () {
                              setState(() {
                                _obscureText = !_obscureText;
                              });
                            },
                            child: Padding(
                              padding:
                                  const EdgeInsets.fromLTRB(20, 10, 0, 0),
                              child: Icon(
                                  _obscureText
                                      ? Icons.visibility
                                      : Icons.visibility_off,
                                  color: visi),
                            )),
                        hintStyle: TextStyle(fontSize: 16),
                        hintText: "",
                        fillColor: Colors.grey[200],
                        filled: true,
                        border: OutlineInputBorder(
                            borderSide: BorderSide(
                              width: 0,
                              style: BorderStyle.none,
                            ),
                            borderRadius: BorderRadius.circular(14))),
                    onSaved: (String value) {
                      password = value;
                    },
                    validator: _validatePassword,
                    obscureText: !_obscureText,
                  ),

“”

“”

flutter dart flutter-layout flutter-dependencies flutter-animation
1个回答
0
投票

对于电子邮件,您可以像这样向_emailController添加侦听器:

var _myIcon = Icon.cancel;

 void initState() {
  super.initState();

 // Start listening to changes.
  _emailController.addListener(_checkEmail);
}

然后:

_checkEmail() {

   bool emailValid = RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+").hasMatch(_emailController.text);

   if(emailValid)
       setState(() {
           _myIcon=Icons.ok;
        });
}

现在将prefixIcon值添加到_myIcon到您的电子邮件字段。

使用:的密码

  • 最少1个大写字母
  • 最少1个小写字母
  • 最少1个数字
  • 最少1个特殊字符
  • [公共允许字符(!@#$&*〜)

并且基于this答案,您可以使用这样的正则表达式:

 RegExp(r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#\$&*~]).{8,}$').hasMatch(_passwordController.text);
© www.soinside.com 2019 - 2024. All rights reserved.