用于字母数字的Symfony验证器

时间:2013-11-26 22:13:26

标签: regex symfony symfony-forms

我尝试仅使用字母数字字段作为名字:

patientFirstName:
                 - NotBlank: ~
                 - Regex: 
                       pattern: "/[^a-z_\-0-9]/i"
                       htmlPattern: "^[a-zA-Z\-0-9]+$"
                       message: Name must be alphanumeric

然而,它仍然允许像“&&&”这样的字符。我的正则表达式错了吗?

2 个答案:

答案 0 :(得分:14)

Symfony 3

如果您不想使用正则表达式,可以使用@Assert \ Type作为验证器字母数字

您可以在symfony doc here

中看到它
@Assert\Type(type="alnum")

答案 1 :(得分:4)

您遗失了^$+(就像您的html模式一样):/^[a-z\-0-9]+$/i

如果你不添加它们,正则表达式将匹配任何字符串,如果它包含至少一个字母数字字符。