当前位置: 技术问答>linux和unix
帮忙看一段检查密码的脚本问题出在哪
来源: 互联网 发布时间:2016-10-18
本文导语: function checkpwd { if echo $1 | grep -Pq '^([A-Z]{1}&[a-z]{1}&[0-9]{1}&[!@#$%^&*().]{1}){6,20}$'; then echo ok; return 0; else echo err; ...
function checkpwd {
if echo $1 | grep -Pq '^([A-Z]{1}&[a-z]{1}&[0-9]{1}&[!@#$%^&*().]{1}){6,20}$'; then
echo ok;
return 0;
else
echo err;
return 1;
fi
}
我的目的是想要密码中至少包含一位大写字母、小写字母、特殊字符,并且长度在6到20之间。但是运行结果不对,不知道是哪块写得不对,请大家指教。
if echo $1 | grep -Pq '^([A-Z]{1}&[a-z]{1}&[0-9]{1}&[!@#$%^&*().]{1}){6,20}$'; then
echo ok;
return 0;
else
echo err;
return 1;
fi
}
我的目的是想要密码中至少包含一位大写字母、小写字母、特殊字符,并且长度在6到20之间。但是运行结果不对,不知道是哪块写得不对,请大家指教。
|
^([A-Z]{1}&[a-z]{1}&[0-9]{1}&[!@#$%^&*().]{1}){6,20}$
这种匹配不对吧,等主席来吧,呵呵
这种匹配不对吧,等主席来吧,呵呵
|
我可怜的正则
|
据我所知 正则里没有与运算 你把条件分开判断不行吗?
|
echo $1|grep -P '([A-Z]{1,})'|grep -P '([a-z]{1,})'|grep -P '([0-9]{1,})'|grep -P '[!@#$%^&*().]{1}'|grep -P '[^.]{6,20}$'
这样行不,分开判断
这样行不,分开判断