Symfony 4 alphanum验证,不带空格

时间:2018-10-23 17:23:03

标签: symfony

我想使用alnum类型但没有空格,我可以用它做点什么还是必须自己定义类型?我要使用没有空格的用户名。

在这里喜欢:

private $username;

/**
 * @Assert\NotBlank()
 * @Assert\Length(max=4096)
 * @Assert\Type(type="alnum")

1 个答案:

答案 0 :(得分:1)

解决这种问题的最有效方法是约束Regex

您的情况(一个非常简单的情况)足以使用(请参阅Length

/** 
 * @Assert\Length(max=4096, minMessage="...", maxMessage="...") 
 * @Assert\Regex( 
 * pattern = "/^[a-z0-9]+$/i", 
 * htmlPattern = "^[a-zA-Z0-9]+$",
 * message="Your name must contain only letter or numbers"
 * ) 
 */

这里可以仅在一个验证器约束中统一两个验证器,但是请记住,如果您有多个条件(例如长度和禁止的字符),您将无法显示准确的错误消息

/** 
 * @Assert\Regex( 
 * pattern = "/^[a-z0-9]{1,4096}$/i", 
 * htmlPattern = "^[a-zA-Z0-9]{1,4096}$", 
 * message="Your name must contain only letter or numbers and must have length between 1 and 4096"
 * ) 
 */

其中 {1,4096} 是长度字符串限制的 min max 值。 / p>

htmlPattern 消息是可选的。