我正在使用文本字段处理 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中的验证效果不好? 我错过了什么吗?
答案 0 :(得分:2)
我更改了 Symfony2.0 官方文档中提出的 Regex ,如下所示:
@Assert\Regex(pattern= "/[0-9]/")
现在表格效果很好。
最后的想法!我真的不明白为什么这些字符是使用正则表达式 \ d 的数字。许多非英语单词都使用这些字符。