Symfony验证器约束断言正则表达式


Symfony Validator Constraints Assert Regex

我有一个实体,我使用RegexNotBlank来验证它。我需要这个字段只包含英文字母,没有数字。一切都很好,但是当我发布西里尔文时,我没有得到一个错误。为什么呢?我只需要英语

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

Unicode可能有问题。我找不到RegEx函数是否做Unicode或Ascii匹配(preg_match'u选项),这可能会在您的情况下有所不同(因为您肯定提供utf-8字符串)。

参考:

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

第二个问题可能是:
'w+

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

[a-zA-Z]+