2017-01-09 5 views
0

나는이 정규식이 있습니다Laravel 어설 여러 정규식

'/^(?:0(?:21|9[0-9]))?[0-9]{8}$/' 

그리고

내가 Laravel어설 :: 정규식 방법을 사용하려면
'/(0|\\+98 | 98)?([ ]|,|-|[()]){0,2}9[1|2|3|4]([ ]|,|-|[()]){0,2}(?:[0-9]([ ]|,|-|[()]){0,2}){8}/' 

.

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; 
} 

;? '|'알 수없는 수정 :

는 preg_match() : 사실

$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}/' 

, 나는 오류를 주었다과

나는 $ 정규식을 초기화하는 데 사용

의견이 있으십니까? 두 개의 정규 표현식에 사이에 교대를 사용하려면

+0

첫 번째 정규식은 고정되어 있으며 두 번째 정규식은 고정되어 있지 않습니다. 의도 된거야? 그렇다면 ['(? :^(?: 0) (? : 21 | 9 [0-9])) [0-9] {8} $ | (0 | \ 98 | 98)을 사용할 수 있습니까? [0, 0] {0, 0} {0, 0} {0, 0} {0, 0} })'] (https://regex101.com/r/1ssxXA/3). 그렇지 않다면 ['^ (? :(?: 0) (? : 21 | 9 [0-9])) [0-9] {8} | (0 | \ 98 | 98)? [() : {0-9} [{0,2}) {8}) {0,2} 9 [1-4] [- '] (https://regex101.com/r/1ssxXA/2). –

답변

1

파이프는 정규 표현식 내에 있어야합니다 :

/^(?:0(?:21|9[0-9]))?[0-9]{8}$/ 
          ^
: 당신이 당신의 정규식이 백 슬래시 후 완료 것을 이해하는 리드 PHP했다

^(?: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} 
          ^

문자열 연결

변경자로 따라 오는 것을 해석하려고 시도 했으므로 오류 메시지가 표시됩니다.

+0

답변 해 주셔서 감사합니다. – AFN