避免在正则表达式密码Laravel 5.4中输入空格

时间:2017-08-04 22:01:31

标签: laravel-5 laravel-5.3 laravel-5.4

我正在尝试Regex强密码。

我的正则表达式如下。适用于以下功能。

  

最小1位数最小1小写字母
最小1上字符
分钟1特殊字符
分钟8   字符最多15个字符

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w]).{8,15}$

有人建议避免进入白色空间吗?

1 个答案:

答案 0 :(得分:1)

这个怎么样?

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w])(?!.*?\s).{8,15}$

除了所有积极的前瞻之外,我刚刚为空白添加了一个负面的预测。

至于它意味着什么,它基本上有一堆"前瞻"这意味着"只有选中的东西后跟"才能创建匹配。它有四种不同的前瞻:

(?=.*?[A-Z]) // followed by any number of characters and then a capital letter
(?=.*?[a-z]) // followed by any number of characters and then a lowercase letter
(?=.*?[0-9]) // followed by any number of characters and then a number
(?=.*?[^\w]) // followed by any number of characters and then not a word character (0-9a-zA-Z_)

开头的^表示开头。所以它基本上说正则表达式的开头应该跟上面指定的所有四个条件。我刚刚添加了一个条款,说开始时可能没有空格。它被称为"否定前瞻":

(?!.*?\s)