我正在尝试向当前的字母数字正则表达式添加通配符,以使密码验证更强大。我并不是要求用户输入通配符,只是允许他们输入通配符。
'/^[a-z0-9]{8,16}$/i'我也在使用cakephp并在模型中进行验证,如果这有帮助的话,但对于这个答案并不是真的需要。
'rule' => '/^[a-z0-9]{8,16}$/i',
'on' => 'create',
'allowEmpty' => true发布于 2010-09-30 16:37:06
只需将您想要允许的字符添加到字符类([...]):
/^[a-z0-9!#$%&]{8,16}$/i发布于 2010-09-30 19:13:12
你这样做是完全错误的。切勿对密码字段使用regexp。这样你就不允许用户使用任何东西了,你只是禁止用户输入他想要作为密码的任何东西(可能是一些特殊的字符,比如&或{或其他什么。
在任何情况下,你的方法弊大于利。
您应该做的是,通过在密码字段旁边显示一个“红-黄-绿”指示器来鼓励用户使用特殊字符和更复杂的密码。
发布于 2010-10-01 00:46:48
我还认为你应该允许“一切”,从而删除对内容的验证,只禁止“空”字符串或太短的字符串(理想情况下,使用实时的javascript验证作为指示器,这样人们就不需要尝试10次就能弄清楚什么是有效的)。
你不应该关心人们输入什么,即使是在日语中,因为你无论如何都要编码这个字符串(我希望!),使用CakePHP的内置函数,使用sha1,md5和salt,最后你会得到一些无害的东西。
使用$this->Auth->password($string);
https://stackoverflow.com/questions/3828990
复制相似问题