当前位置: 首页 > 知识库问答 >
问题:

密码中允许多个特殊字符

松正阳
2023-03-14

我有正则表达式,它测试以下规则,

    < li >密码必须至少有一个字符。 < li >密码必须至少有一个数字。 < li >密码必须至少有一个字母数字字符。(应允许多个)

我的尝试是这样的,

/^([a-zA-Z+]+[0-9+]+[!@#$%^&*])$/

在大多数情况下,这工作正常,除非我添加多个字母数字字符。

测验

  • 测试[qwer1234]结果[无效]结论[通过]
  • 测试[qwer1234$]结果[有效]结论[通过]
  • 测试[qwer1234#$]结果[无效]结论[失败]

最后一次测试应该通过,但失败了。我知道哪里出了问题,但无法掌握正则表达式的魔力。我对错误的想法是,

[0-9+] // This + sign shows that you can have more then 1 of that range of numerics

哪里

[!@#$%^&*] // Does not have the + sign

我试过了,

[!@#$%^&*+] // Does not have the + sign
[!@#$%^&*]+ // Does not have the + sign

两个都不管用。我错过了什么?

共有3个答案

晏正豪
2023-03-14

试试下面的。如果一个字符应该是第一个,数字应该是第二个,字母数字应该是下一个,它就会起作用。

/^[a-zA-Z][1-9] [! @#$%^

蓬森
2023-03-14

为什么需要将它们全部混入一个正则表达式中?

function test_password(password) {
    if (password.length < 2) return false;            // Minimum length
    if (!/[0-9]/g.test(password)) return false;       // Needs a number
    if (!/[a-z]/gi.test(password)) return false;      // Needs a letter
    if (!/[^a-z0-9]/gi.test(password)) return false;  // Needs a special char

    return true;
}
呼延骏俊
2023-03-14

根据您实际需要的内容,从您对情况的混乱描述中,我希望有两个正则表达式可以帮助您。第一个要求密码至少以1个字母字符开头,第二个至少有1个数字字符,最后一个至少有一个特殊字符。

/^([a-zA-Z]+[0-9]+[!@#$%^&*]+)$/

http://jsfiddle.net/ECwP8/

如果您不要求字符以特定顺序出现,您可以尝试此正则表达式:

/(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9])(?=[^!@#$%^&*]*[!@#$%^&*])/

http://jsfiddle.net/bJTTk/1/

这个简单地要求密码中至少有1个字母字符、至少1个数字字符和至少1个特殊字符,以任何顺序出现。

 类似资料:
  • 我在rails应用程序中使用了devise gem。我找到的验证密码格式是 它工作正常,但我希望我的密码满足两个要求1)密码必须包含至少6个字母(它可以是大写字母,小写字母,数字或所有字母的组合)。 2)第二个标准是密码不应该包含任何特殊字符。 我不知道如何做到这一点,我发现的只是,我如何能强制特殊字符的存在,而不是反之亦然。 提前谢谢

  • 我需要一个javascript正则表达式来验证电话号码。数字不能是单个零或仅为零。 e. g. 这些是不允许的。 但这些是允许的: 到目前为止,我拥有的javascript正则表达式是: 但这似乎不起作用。 规则是电话号码可以包含数字和和和。它可以以0开头,但电话号码不能是单个0或仅包含或不包含上述字符的多个零。 你能给我指一下正确的方向吗。提前谢谢。

  • 相关网站:http://nubix.ca/blog/we-have-a-drone-and-were-prepared-to-shot/

  • 问题内容: 我想删除的特殊字符,如多次出现,,,从我的java字符串由单下划线。我试过了 并且似乎用下划线替换了连续的相同类型的特殊字符,但否则不起作用。例如: 变成 (下划线有2个。)但是应该是。 同样对于失败的情况。我也尝试使用regex并做了一个正则表达式 但这仍然无济于事。我该如何实现? 问题答案: 注意,这是对与第一个捕获组匹配的 内容 的反向引用。要实际匹配字符类中的一个或多个任何字符

  • 我需要密码字段的正则表达式。 要求是: > 密码长度必须为8到20个字符 必须包含至少一个字母和一个数字以及来自

  • 我们有正则表达式来验证一个数字、一个大写字母和一个小写字母的密码。正则表达式是: 这个正则表达式不允许任何特殊字符。我需要更改正则表达式以允许一些特殊字符列表,并且不应该有任何限制,必须至少有一个特殊字符。只有