Symfony 4 alphanum验证,不带空格

Symfony 4 alphanum验证,不带空格,symfony,Symfony,我想使用alnum类型,但没有空格,我可以用它做些什么吗,或者我必须自己创建类型?我想创建没有空格的用户名 像这样: private $username; /** * @Assert\NotBlank() * @Assert\Length(max=4096) * @Assert\Type(type="alnum") 解决此类问题最有力的验证是约束 对于您的案例(一个非常简单的案例)已足够使用(请参阅) 这里可以在一个验证器约束中统一两个验证器,但请记住,如果您有多个条件(如长度和禁止字

我想使用alnum类型,但没有空格,我可以用它做些什么吗,或者我必须自己创建类型?我想创建没有空格的用户名

像这样:

private $username;

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

解决此类问题最有力的验证是约束

对于您的案例(一个非常简单的案例)已足够使用(请参阅)

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

其中,{14096}是长度字符串限制的minmax


htmlPattern和消息是可选的

解决此类问题最有力的验证是约束

对于您的案例(一个非常简单的案例)已足够使用(请参阅)

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

其中,{14096}是长度字符串限制的minmax


htmlPattern和消息是可选的

对于这种字符串验证,最好使用正则表达式验证。/***@Assert\Length(max=4096)*@Assert\Regex(*pattern=“/^[a-z0-9]+$/i”,*htmlPattern=“^[a-zA-z0-9]+$”*)*/非常感谢!这比创建一个验证器要容易得多,而且工作得非常好!欢迎来到堆栈溢出!其他用户将您的问题标记为低质量和需要改进。我对您的输入进行了重新措辞/格式化,使其更易于阅读/理解。请查看我的更改,以确保它们反映您的意图。请随时给我留言,如果你有更多的问题或反馈给我。如果你有一个好的方式,考虑写一个自我回答,或者@ MarcosRegis可以把他的评论变成一个答案。也许最好使用正则表达式验证这种类型的字符串验证。Assert\Length(max=4096)*@Assert\Regex(*pattern=“/^[a-z0-9]+$/i”,*htmlPattern=“^[a-zA-z0-9]+$”*)*/非常感谢!这比创建一个验证器要容易得多,而且工作得非常好!欢迎来到堆栈溢出!其他用户将您的问题标记为低质量和需要改进。我对您的输入进行了重新措辞/格式化,使其更易于阅读/理解。请查看我的更改,以确保它们反映您的意图。请随时给我留言,如果你有更多的问题或反馈给我。如果你有一个好的方式,考虑写一个自我回答,或者@ MarcosRegis可以把他的评论变成一个答案。我推荐并使用2个不同的验证器,因为你将有2个相关的信息为最终用户。@ GOTO你是对的!我将补充这个建议。特克斯!我建议使用2个不同的验证器,因为最终用户会收到2条相关消息。@goto,你说得对!我将补充这个建议。特克斯!
/** 
 * @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"
 * ) 
 */