javascript - 用于密码验证的字母数字 JavaScript RegEx

标签 javascript regex

我正在使用下面的正则表达式来验证密码以仅接受字母数字字符。如果我输入 2 个字符,一个字母和一个数字,则正则表达式有效,但如果超过两个字符,我的正则表达式不起作用。如果可能,我想要以下结果,如“预期行为”中所示。谁能帮我重写我的正则表达式?

JavaScript

  function checkPasswordComplexity(pwd) {
        var regularExpression = /^[a-zA-Z][0-9]$/;
        var valid = regularExpression.test(pwd);
        return valid;
    }

当前行为
Password:Valid
a1:true
aa1:false
aa11:false

预期行为
Password:Valid
aa:false (should have at least 1 number) 
1111111:false (should have at least 1 letter)
aa1:true
aa11:true
a1a1a1a1111:true

最佳答案

您想添加“一个或多个”,您当前正在检查一个字母后跟一个数字。

尝试:

/^[a-zA-Z0-9]+$/
+意思是“一个或多个”

我也加入了范围。

注意:我不明白您为什么要将密码限制在如此小的范围内,但具有较宽的字符范围会使您的密码更强大。

Here is a fiddle demonstrating the correct behavior

如果您只想验证密码是否至少包含一个字母和至少一个数字,您可以像这样检查:
function checkPasswordComplexity(pwd) {
    var letter = /[a-zA-Z]/; 
    var number = /[0-9]/;
    var valid = number.test(pwd) && letter.test(pwd); //match a letter _and_ a number
    return valid;
}

关于javascript - 用于密码验证的字母数字 JavaScript RegEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814000/

相关文章:

javascript - Node 读取文件错误

javascript - 在 React 中追加一系列对象

javascript - 如何在google api图表的折线图笔划中显示点值?

r - 按 LIKE 合并两个表,但合并整个字符串而不是字符串的一部分

javascript - 解析 CSS 背景图像

javascript - 谷歌浏览器的问题

javascript 在 I.E. 中不工作9 以及 Firefox

c# - 正则表达式 : which pattern would return true if both exact words were found?

regex - 如何用一个命令分别用新行和制表符替换\n 和\t?

javascript - 将 stringify regex 映射到 RegEx