특정 패턴과 일치하는 경우에만 유효한 양식을 만들려고합니다.Angular2 모델 기반 폼 유효성 검사기 패턴
그것은 일치해야합니다 : 여기
123456789
123-456-789
123 458 789
내 패턴 :
^(\d{3}-\d{3}-\d{3})|(\d{3} \d{3} \d{3})|(\d{9})$
첫째, 재미있는 사실, 검사기에 사용 할 수 있도록, 내가 모든 슬래시를 탈출했습니다 보인다 그 안에.
Validators.pattern('^(\\d{3}-\\d{3}-\\d{3})|(\\d{3} \\d{3} \\d{3})|(\\d{9})$')
내 문제는 총 문자열 크기 번호를 제한하지 않는다는 것입니다.
예를 들어, 1234567890000과 일치합니다. 123456789에서 멈추고 추가 문자가 있으면 false 상태가됩니다.
Validators.pattern('\\d{9}')
또는
Validators.pattern('^\\d{9}$')
그리고 내가에만 설정할 수 있습니다 정확히 9 자 : 나는 그것을 설정하면,
Validators.pattern('^(\\d{3}-\\d{3}-\\d{3})|(\\d{3} \\d{3} \\d{3})|(\\d{9})$')
Validators.pattern('(\\d{3}-\\d{3}-\\d{3})|(\\d{3} \\d{3} \\d{3})|(\\d{9})')
또 다른 재미있는 사실 :
나는 이러한 변형을 시도했다.저는 정규식 오류라고 확신하지만 Angular2가 ^
및 $
기호를 사용하여 평가할 문자열을 구분해야하는지 이해할 수 없습니다.
'(? : \\ d {3} ([-]) \\ d {3} \\ 1 \\ d {3} | \\ d {9})' '을 시도하십시오. 'Validators.pattern'의 표현식은 기본적으로 고정되어 있으므로'^'와'$'를 추가 할 필요가 없습니다. –
Plunkr에서 필드에'123-456-7891111'을 입력 해보십시오. 유효성 검사를 통과했지만 의도 한 동작은 유효성 검사기가 123-456-789 이후에 오류를 트리거한다는 것입니다. 내 규칙은 9 자리 숫자 여야하며, 구분 여부는 '-' 또는 공백이어야합니다. – BlackHoleGalaxy
하지만 위 제안에 대한 제안은 맞습니까? [this plunkr] (http://plnkr.co/edit/pGsb23WQmamwChLEWRht?p=preview)을 참조하십시오. –