2016-06-03 2 views
0

ng-pattern을 사용하여 다음 조건에 대한 필드의 유효성을 검사합니다. 지금까지 나는 단지 다음 정규 표현식을 사용하여 마지막 두 조건을 검증 할 수 있었다. 숫자 만 추가하면 길이도 유효화하고 싶습니다.ng-pattern 여러 조건과 일치하는 정규식

ng-patter 내의 모든 네 가지 조건을 어떻게 검증 할 수 있습니까? 브래킷을 별도로 묶어야합니까?

data-ng-pattern="/^[0-9-\s()+]+$/" 

11111111 
111111111 
11-111-111 
111-111-111 

나는이 시도에 여러 조건

+0

결과? 이것은 또한 정규 표현식을 직접 만드는 데 도움이 될 수 있습니다. 어쩌면'^ \ d {2,3} (\ -?) \ d {3} \ 1 \ d {3} $'이 이미 필요한 것입니다. –

답변

0

을 확인하고 싶습니다. 10 자리 만 허용됩니다.

/^[1-9]{1}[0-9]{9}$/ 

나는 이것이 효과가 있을지 모르지만 나는 시도했다.

/^[1-9]{1}[0-9-\s()+]{10}$/gm 

Explainlation

1)^시작. 다중 행 플래그 (m)가 활성화 된 경우 문자열의 시작 또는 행의 시작과 일치합니다.

2) [문자 세트. 세트의 모든 캐릭터와 일치시킵니다. 1-9 범위. "1"~ "9"범위의 문자를 찾습니다 (char 코드 49에서 57). ]

3) {1} 한정어. 앞의 토큰 중 1과 일치합니다.

4) [문자 세트. 세트의 모든 캐릭터와 일치시킵니다.

5) 0-9 범위. "0"~ "9"(char code 48 ~ 57) 범위의 문자를 찾습니다.

6) - 문자. "-"문자 (문자 코드 45)와 일치합니다.

7) \ s 공백. 공백 문자 (공백, 탭, 줄 바꿈)와 일치합니다.

8)) 캐릭터 (문자.는 "("문자 (문자 코드 (40)).

9 일치). ")"문자 (문자 코드 41)와 일치합니다.

10) + 문자. "+"문자 (문자 코드 43)와 일치합니다. ]

11) {10} 한정어. 앞의 토큰 중 10 번째와 일치합니다.

12) $ End. 다중 행 플래그 (m)가 활성화 된 경우 문자열의 끝 또는 행의 끝과 일치합니다.

13) g 수정 자 : 전역. 모든 경기 (첫 경기에서 돌아 가지 않음)

14) m 수정 자 : 멀티 라인. {6}*^([^0][0-9]){6}$의 그 어떤 허용되어 있기 때문에^및 $ (가)/각 행의 끝을 시작 일치하도록합니다 ^[1-9][0-9]{6}*$의 문제는 그것이 잘못된 정규식입니다

+0

안녕하세요, 답변 주셔서 감사합니다. 나는 hypens 10 개 또는 11 개와 hypens 8 개 또는 9 개가없는 것을 필요로한다 : 이것은 분리 되어야만 하는가? – Jimi

+0

답변을 수정했습니다. –

+0

@ Jimi이 정규식을 사용하여 전화 번호를 확인하고 있습니까? 그렇다면 나는 더 나은 해결책을 가지고있다. –

1

(뿐만 아니라 문자열의 시작/끝) 문자가 0이 아니고 이 6 개 자입니다.

은 사용 설명 ^[1-9][0-9]{5}$

:

  1. ^가 : 앵커
  2. [1-9]로 시작은 :에 정확히 5 자리 숫자를 일치 : 9
  3. [0-9]{5}-1에서 정확히 하나의 숫자와 일치 포함 범위 0-9
  4. $는 : 앵커와 함께 종료

Regex Visualization

Regex101 놀이터

HTML5 데모 :

표시 코드

input:invalid { color: red; } <input type="text" pattern="[1-9][0-9]{5}" /> 실행 코드 snippetHide 당신이 단어와 일치 할 paaterns을 대한 소개를 할 수

관련 문제