正则表达式崩溃

时间:2011-04-26 02:56:02

标签: regex

有人可以帮我使用rails的这个正则表达式密码验证吗?

目前设定为确保:

  • 密码至少应包含一个整数。
  • 密码应包含至少一个字母(小写或大写)。
  • 密码可以 有20到7E的特殊字符 ascii values。
  • 密码应该是 最少8个,最多40个 人物很长。

如何删除单个十进制数字规则?

/^(?=.*\d)(?=.*([a-z]|[A-Z]))([\x20-\x7E]){8,40}$/

3 个答案:

答案 0 :(得分:2)

我将建议不要使用单一的正则表达式来测试您的所有密码要求。将它们写成许多小语句似乎要容易得多:

if(password.length >= 8 &&
   password.length <= 40 &&
   password.contains('\d') &&
   password.contains('[a-zA-Z]') &&
   password.contains('^[\x20-\x7E]$'))
   return true
else
   return false

它为未来的维护者提供了更多的自我记录,并且在眼睛上更容易。

答案 1 :(得分:1)

\ d代表所有数字。你想要:

/^(?=.*([a-z]|[A-Z]))([\x20-\x7E]){8,40}$/

答案 2 :(得分:0)

/^(?=.*([a-z]|[A-Z]))([\x20-\x7E]){8,40}$/