2015-06-01 185 views
-2

下面的正则表达式是基于另一个堆栈的答案...但我的结果是不一样的。特殊字符未被检查。特殊字符preg_match

需要小写,大写,数字和特殊字符。

例如:qwertyu1wW是处理无特殊字符

if (!preg_match('/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}/', $pass)) { 
+0

“特殊性”不是一回事。你的意思是“标点符号”吗?如果是这样,特别是哪些标点符号? – deceze

+0

@karthikmanchala谢谢 – acctman

+0

正则表达式只在字符串中寻找一个小写字母'[az]',一个大写字母'[AZ]'和一个数字'\ d',长度至少为8个字符('{ 8,}')。我不确定最后一个“。”是否会出现,或许还需要一段时间才能出现? – chris85

回答

1

对于

使用以下 “不是数字或字母以外的任何”:

if (!preg_match('/(?=.*[\W_-])(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}/', $pass)) { 
        ^^^^^^^^^^