У меня есть два регулярные выражения:Laravel - Assertion множественного регулярное выражение
'/^(?:0(?:21|9[0-9]))?[0-9]{8}$/'
И
'/(0|\\+98 | 98)?([ ]|,|-|[()]){0,2}9[1|2|3|4]([ ]|,|-|[()]){0,2}(?:[0-9]([ ]|,|-|[()]){0,2}){8}/'
Я хочу использовать Assertion :: регулярки метод в Laravel. Вот этот метод:
Assertion.php:
public static function regex($value, $pattern, $message = null, $propertyPath = null)
{
static::string($value, $message, $propertyPath);
if (! preg_match($pattern, $value)) {
$message = sprintf(
$message ?: 'Value "%s" does not match expression.',
static::stringify($value)
);
throw static::createException($value, $message, static::INVALID_REGEX, $propertyPath, array('pattern' => $pattern));
}
return true;
}
Как использовать и проверить несколько регулярных выражений в Assertion :: регулярное выражение ($ телефон, $ регулярное выражение);?
Я использовал для инициализации $ регулярного выражения с:
$regex = '/^(?:0(?:21|9[0-9]))?[0-9]{8}$/ | /(0|\\+98 | 98)?([ ]|,|-|[()]){0,2}9[1|2|3|4]([ ]|,|-|[()]){0,2}(?:[0-9]([ ]|,|-|[()]){0,2}){8}/'
На самом деле, я дал ошибку:
preg_match(): Неизвестный модификатор '|'
Любое предложение?
Ваше первое регулярное выражение закреплено, а второе - нет. Это предназначено? Если да, вы можете использовать ['(?:^(?: 0 (?: 21 | 9 [0-9]))? [0-9] {8} $ | (0 | \ +98 | 98)? [-,()] {0,2} 9 [1-4] [-,()] {0,2} (?: [0-9] [-,()] {0,2}) {8 }) '] (https://regex101.com/r/1ssxXA/3). Если нет, попробуйте ['^ (? :(?: 0 (?: 21 | 9 [0-9]))? [0-9] {8} | (0 | \ +98 | 98)? [-,()] {0,2} 9 [1-4] [-,()] {0,2} (?: [0-9] [-,()] {0,2}) {8}) $ '] (https://regex101.com/r/1ssxXA/2). –