2013-09-23 7 views
8

그래서보기에 고장 나는이 내 모델에서 다음과 같은 규칙 : 정규식은 HTML에서 pattern 속성 태그에 적용되는 몇 가지 이유Laravel 유효성 검사 정규식,

public static $rules = array(
    'name'   => 'required|alpha_dash|unique:subsidiaries', 
    'internal_number' => 'required|alpha_dash|unique:subsidiaries', 
    'expedition_rate' => array('required', 'regex:/^[0-9]{1,3}(\.?)[0-9]{1,2}$/'), 
    'hundred_kg_rate' => array('regex:/^[0-9]{1,5}(\.?)[0-9]{1,2}$/'), 
    'handling'  => array('regex:/^[0-9]{1,3}(\.?)[0-9]{1,2}$/'), 
    'insurance'  => 'required|numeric', 
); 

하지만, ...이 휴식!

결과 :

<input required="true" pattern="^[0-9]{" class="form-control" ....> 
           _________ 
           \ 
            => This right here should be 
           ^[0-9]{1,3}(\.?)[0-9]{1,2}$ 
+0

어디서 출력하고 있습니까? 혹시'전 (前)'을 사용하고 있습니까? – rmobis

+0

@Raphael_ 실제로'Former'를 사용하고 있습니다 ... 규칙이 컨트롤러에서보기로 전달됩니다 – Alex

+0

그러면 전적으로 Laravel이 아니라 이전의 문제입니다. – rmobis

답변

0

나는이 같은 PHP 내부 변수를 구문 분석을 기대하고있다 내기 ... 중괄호를 탈출 시도 :

$var = 'something'; 
echo 'The value is \{$var\}.'; 
// Outputs: 
// The value is $var. 
:와

$var = 'something'; 
echo 'The value is {$var}.'; 
// Outputs: 
// The value is something. 

명암이

나를 혼란스럽게하는 부분은 작은 따옴표 안에 들어 있기 때문에 발생하지 않아야한다는 것입니다. 어쩌면 Laravel 것?

+0

어떻게하면 정규식 구문에서 중괄호를 이스케이프 처리 할 수 ​​있습니까? 이것은 나를 위해 새롭다 – Alex

+0

모든 백 슬래시의 두 배. –

+0

죄송합니다. 귀하의 질문에 대해 오해 한 것 같습니다. 중괄호를 벗어나려면'\ {... \}'을 할 수 있어야합니다. 렌더링 할 때 백 슬래시가 없어야합니다. –

2

이렇게 사용 해보십시오.

array(
    'field' => 'regex:[a-z]' 
); 

희망이 있으면 도움이 될 것입니다.