javascript - setCustomValidity 不起作用

标签 javascript regex

我有一个使用 setcustomvalidity 的 JavaScript,但只有一个条件不起作用:

 $("#newPass").on('invalid',function(){
        var tmp = $('#newPass').val();
        var regex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]/;
        if(tmp == ""){
          $('#newPass')[0].setCustomValidity('new password is empty');
        }else if(regex.test(tmp)){
            $('#newPass')[0].setCustomValidity('password must be combination of letter and number');
        }else if(tmp.length < 6){
          $('#newPass')[0].setCustomValidity('Password shoult at least 6');
        }else{
          $('#newPass')[0].setCustomValidity('please check your password');
        }
      });

regex.test 不起作用,有什么解决方案吗?也许正则表达式是错误的?

最佳答案

尝试将您的regex变量值更改为:

var regex = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/;

如果您用它进行测试,如果字符串至少有 1 个字母和 1 个数字,它将返回 true,否则返回 false

关于javascript - setCustomValidity 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44627049/

相关文章:

javascript - js中正则表达式使用+问题

c# - 获取字符串中格式说明符的数量?

ruby - GitHub 喜欢搜索正则表达式

javascript - 如何在将鼠标悬停在链接上时隐藏 URL?

JavaScript 事件不仅在第一个元素上

javascript - 记录前缀 - 使用非单例或其他方法

javascript - 基本 Jquery - 淡出/淡入

Python:如何使用正则表达式拆分列中的值并保留右侧?

javascript - 按背景颜色计算行数失败

javascript - Twitter-bootstrap 模态未显示在页面加载上(灰屏)