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

Devise gem-密码中不允许使用特殊字符

归俊
2023-03-14

我在rails应用程序中使用了devise gem。我找到的验证密码格式是

PASSWORD_FORMAT_USED_CURRENTLY = /\A
  (?=.{10,})          # Must contain 10 or more characters
  (?=.*\d)           # Must contain a digit
  (?=.*[a-z])        # Must contain a lower case character
  (?=.*[A-Z])        # Must contain an upper case character
  (?=.*[[:^alnum:]]) # Must contain a symbol
/x

它工作正常,但我希望我的密码满足两个要求1)密码必须包含至少6个字母(它可以是大写字母,小写字母,数字或所有字母的组合)。

 PASSWORD_FORMAT = /\A
  (?=.{6,})          # Must contain 6 or more characters      
/x

2)第二个标准是密码不应该包含任何特殊字符。

我不知道如何做到这一点,我发现的只是,我如何能强制特殊字符的存在,而不是反之亦然。

提前谢谢

共有1个答案

云骏奇
2023-03-14

第二个正则表达式本身将处理这两种情况。

 PASSWORD_FORMAT = /\A
  (?=.{6,})          # Must contain 6 or more characters
  (?=.*\w)           # Must contain capital letters, small letters, digits or a combination of all. Must not contain any special characters.
/x
 类似资料:
  • 我有正则表达式,它测试以下规则, < li >密码必须至少有一个字符。 < li >密码必须至少有一个数字。 < li >密码必须至少有一个字母数字字符。(应允许多个) 我的尝试是这样的, 在大多数情况下,这工作正常,除非我添加多个字母数字字符。 测验 测试[qwer1234]结果[无效]结论[通过] 测试[qwer1234$]结果[有效]结论[通过] 测试[qwer1234#$]结果[无效]结论

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

  • 我是Java的初学者,目前我有这样的代码。 规则是:没有特殊字符,只有小写或0到9之间的数字。 这段代码工作正常,但也需要特殊字符。有没有其他方法可以阻止这种情况发生?请不要正则表达式。

  • 我在输入标签类型密码中使用这种模式来接受强密码。“必须至少包含一个数字、一个大小写字母和一个特殊字符,最少8个字符,最多26个字符”。但是当我插入其中一个字符时

  • 本文向大家介绍MySQL用户密码中的特殊字符叹号(!)的妙用,包括了MySQL用户密码中的特殊字符叹号(!)的妙用的使用技巧和注意事项,需要的朋友参考一下 使用叹号(!)禁止用户终端进入的一个方法。 仔细看一下,原来他把!后面的字符串做为命令执行了。又试了一个Navicat的管理端,也一样存在密码不正常的问题。 在测一下程序方面是不是可以用,写一个PHP测一下。 还看程序中能正常识别。 PHP还是

  • 我在URL中有以下格式。 这里的密码类似于qDTA*$X)ME/74。当我在URL中直接使用此密码时,邮递员不响应。我应该如何继续测试此url?