我的rules
方法中有一堆验证规则,所有错误似乎都有效,但这个问题有问题:
['username', 'match', 'pattern' => '/[a-zA-Z0-9_-]+/', 'message' => 'Your username can only contain alphanumeric characters, underscores and dashes.'],
验证,这是不正确的行为。
我在这里做错了吗?
答案 0 :(得分:9)
此模式仅检查第一个字符。你需要纠正它,如下所示:
['username', 'match', 'pattern' => '/^[a-zA-Z0-9_-]+$/', 'message' => 'Your username can only contain alphanumeric characters, underscores and dashes.'],
为确保Yii的匹配正常,您可以将@
(例如)作为第一个字符进行测试。然后,你可以看到,验证工作。所以问题在于你的模式。
答案 1 :(得分:0)
以上答案在我的项目中也无效。我请求您遵循以下解决方案:
[['userame'],'match', 'pattern' => '/^[a-z]\w*$/i','message' => 'Enter Characters Only'],
答案 2 :(得分:0)
以上所有解决方案都不适用于我。这是最好的事情,所以试一试:
['first_name', 'match', 'pattern' => '/^[a-z][A-Za-z,;\"\\s]+[!?.]$/i'],