如何在运行时在extJS中提供密码验证

如何解决如何在运行时在extJS中提供密码验证

如何在extJS中提供密码验证

我在图像1中有一个要求,输入文字后应出现图像2。应该为通过的所有点赋予绿色。

我的空白图片

Blank Image

输入文字图片

Entered Value Image

这是我正在尝试但没有得到想要的东西。

 regex: /^(?!.*(.)\1{3})((?=.*[\d])(?=.*[a-z])(?=.*[A-Z])|(?=.*[a-z])(?=.*[A-Z])(?=.*[^\w\d\s])|(?=.*[\d])(?=.*[A-Z])(?=.*[^\w\d\s])|(?=.*[\d])(?=.*[a-z])(?=.*[^\w\d\s]))[\x21-\x7E]{8,28}$/,regexText: ' Password should contain at least 6 character; Password should contain at least one number; Password should contain at least one lowercase and one uppercase letter
Password should contain at least one special character ',msgTarget: 'under'

有人可以帮助我实现这一目标吗?

解决方法

有了4个验证要求,最好有4个单独的验证器,每个验证器都会评估问题的一部分。因此,与其做一个尝试所有内容的正则表达式,不如做一个只看长度的验证器,再看一个数字的验证器,再看一个特殊字符的验证器,再看小写和大写字母的最终验证器。

尝试制作超级复杂的正则表达式会浪费大量时间,而且仅凭一个正则表达式就无法指示正在通过或未通过哪些规则。

,

enter image description here 最好使用简单的验证器功能进行检查。您可以使用以下代码并根据需要进行更改(删除错误图标,更改样式并添加“密码强度:字符串”标题):

Ext.define('PasswordField',{
    extend: 'Ext.form.field.Text',alias: 'widget.passwordfield',//inputType: 'password',msgTarget: 'under',validators: [{
        errorMessage: "Password should contain at least 6 character;",fn: (value) => {
            return value.length >= 6
        }
    },{
        errorMessage: "Password should contain at least one number;",fn: (value) => {
            return /\d/.test(value)
        }
    },{
        errorMessage: "Password should contain at least one lowercase and one uppercase letter;",fn: (value) => {
            return /[a-z]/.test(value) && /[A-Z]/.test(value);
        }
    },{
        errorMessage: "Password should contain at least one special character;",fn: (value) => {
            return /[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(value);
        }
    }],initComponent: function () {
        this.callParent();
    },onRender: function() {
        this.callParent();
        this.validate();
    },validator: function(val) {
        const errorMessages = [];
        this.validators.map( (validator,index) => {
            const icon = validator.fn(val) ? '<i class="fa fa-check-circle-o" style="color: green; width: 20px;"></i>': '<i style="width: 20px;">&nbsp;</i>';
            errorMessages.push(`<li>${icon}${validator.errorMessage}</li>`);
        });
        return errorMessages.join('');
    }
});

Ext.application({
    name: 'Fiddle',launch: function () {
        Ext.create('Ext.form.Panel',{
            title: "Sample Form Panel",renderTo: Ext.getBody(),height: 400,bodyPadding: 5,items: [{
                xtype: 'passwordfield',name: 'password',labelAlign: 'top',fieldLabel: "Password"
            }]
        })
    }
});

PS

最好将验证移到单独的课程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?