models
public function rules(): array
{
return [
[['password'], 'validatePwd'],
];
}
public function validatePwd(string $attribute, ?array $params): void
{
$reg ="/^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$/";
if(!preg_match($reg,$this->password)){
$this->addError($attribute, '密码应包含大小写字母数字特殊字符并且8位以上');
}
}