目前我正在使用symfony2,我需要一种带有条件的模式:-最少 8 个字符,最多 20 个字符-必须至少包含 1 个字母-必须至少包含 1 个数字-可能包含特殊字符,如 !@#$%^&*((_+我尝试了这段代码,但它不起作用:
/**
* Encrypted password. Must be persisted.
* @AssertRegex(
* pattern = "/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[?!-/_/=:;§]).{8,20}+$/i",
* htmlPattern="/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[?!-/_/=:;§]).{8,20}$/",
* match=true,
* message="message error ")
*
* @var string
*/
protected $password;
你试过这样的事情吗?
/**
* @AssertRegex(
* pattern = "/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9!@#$%^&*()_]+){8,20}$"/",
*
* rest of options...
*
* )
*/
非常感谢你的回答.我不得不覆盖$plainPassword
而不是$password
的正则表达式,因为我使用的是 FOSuserBundle .