sfValidatorRegex с несколькими шаблонами в Symfony - PullRequest
0 голосов
/ 29 февраля 2012

Этот бит кода реализован с помощью symfony:

$p1 = '/^[0-9]{8}[A-Z]$/i';
$p2 = '/^[XYZ][0-9]{7}[A-Z]$/i';

$this->setValidators(array(
 ...
 'field_1' => new sfValidatorRegex(
          array('pattern' => p1.'|'.p2)),

...

Поле_1 должно соответствовать либо шаблону p1, либо p2, но оно не работает. Любая помощь, пожалуйста.

1 Ответ

2 голосов
/ 29 февраля 2012

Вы объединяете разделители и флаги, которые не работают.

Попробуйте:

$p1 = '(?i:^[0-9]{8}[A-Z]$)';
$p2 = '(?i:^[XYZ][0-9]{7}[A-Z]$)';

$this->setValidators(array(
 ...
 'field_1' => new sfValidatorRegex(
          array('pattern' => "/$p1|$p2/")),

Также в вашем случае вы можете просто использовать шаблон как:

$re = '/^[XYZ0-9][0-9]{7}[A-Z]$/i';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...