Symfony Validator约束断言正则表达式

时间:2015-09-30 15:28:38

标签: php regex symfony doctrine-orm

我有一个实体,我使用RegexNotBlank进行验证。我需要这个字段只包含英文字母,没有数字。一切正常,但是当我发布西里尔语时,我没有收到错误。这是为什么?我只需要英文

/**
 * @var string
 *
 * @Assert\NotBlank()
 * @Assert\Regex(
 *           pattern= "/^\w+/",
 *           match=   false,
 *           message= "This text cannot contain numbers"
 * )
 *

1 个答案:

答案 0 :(得分:2)

您可能遇到Unicode问题。我找不到RegEx函数是否使用Unicode或Ascii匹配(\u的{​​{1}}选项),这可能会对您的情况产生影响(因为您肯定提供了utf-8)字符串)。

参考:

http://www.regular-expressions.info/php.html

第二个问题可能是:

preg_match

这基本上意味着可打印的字符,包括任何编码中的字母和数字(如果匹配utf-8)。在这种情况下,您可以尝试:

\w+