我有一个实体,我使用Regex
和NotBlank
进行验证。我需要这个字段只包含英文字母,没有数字。一切正常,但是当我发布西里尔语时,我没有收到错误。这是为什么?我只需要英文
/**
* @var string
*
* @Assert\NotBlank()
* @Assert\Regex(
* pattern= "/^\w+/",
* match= false,
* message= "This text cannot contain numbers"
* )
*
答案 0 :(得分:2)
您可能遇到Unicode问题。我找不到RegEx
函数是否使用Unicode或Ascii匹配(\u
的{{1}}选项),这可能会对您的情况产生影响(因为您肯定提供了utf-8)字符串)。
参考:
http://www.regular-expressions.info/php.html
第二个问题可能是:
preg_match
这基本上意味着可打印的字符,包括任何编码中的字母和数字(如果匹配utf-8)。在这种情况下,您可以尝试:
\w+