使用Regex验证Symfony2.0

时间:2012-09-05 16:42:35

标签: regex symfony annotations validation

我正在使用文本字段处理 Symfony2.0 表单。我使用注释来验证字段。该字段具有以下验证:

 * @Assert\MinLength(limit=2, message="At least two characters")
 * @Assert\NotBlank()
 * @Assert\Regex(
 *           pattern= "/\d/",
 *           match=   false,
 *           message= "This text cannot contain numbers" 
 * ) 

请注意, Regex 断言来自here

所以,我希望除了数字之外的所有字符都可以使用!但是,当我放置一些特殊的字符如“ò”时,表单未经过验证,并返回错误消息“此文本不能包含数字”。

我在http://www.regextester.com/检查了正则表达式字符串,似乎工作正常!

知道为什么Symfony2.0中的验证效果不好? 我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

我更改了 Symfony2.0 官方文档中提出的 Regex ,如下所示:

 @Assert\Regex(pattern= "/[0-9]/")

现在表格效果很好。

最后的想法!我真的不明白为什么这些字符是使用正则表达式 \ d 的数字。许多非英语单词都使用这些字符。