处理类似于this previous post的代码,但代码是密码($ email现在是$ password)。尝试进行验证检查以查看密码字段是否至少有一个数字,一个小写字母,一个大写字母和一个符号!@#$%^& *
PHP端验证使用正则表达式
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[a-zA-Z\d!@#$%^&*]{6,20}$/
工作正常。但是对于js验证,我将这用于"如果密码不包含其中一个"
if (preg_match('/([^a-z]{1})([^A-Z]{1})(^\d{1})([^!@#$%^&*]{1})+/', $password, $matches)) {
echo 'Password must contain _, _, _';
初学者和非常困惑。
答案 0 :(得分:1)
为什么不在js中使用相同的正则表达式?
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[a-zA-Z\d!@#$%^&*]{6,20}$/
这也适用于js。如果只需要if password does not contain one of each
使用否定作为
if (!preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[a-zA-Z\d!@#$%^&*]{6,20}$/', $password, $matches)) {
echo 'Password must contain _, _, _';