2011-04-13 11 views
6

저는 여전히 정규 표현식에서 초보자입니다.값 아래의 숫자 검사를위한 정규식

나는 두 개의 문자에 번호 입력을 검증 할 필요가 쉬운 12

두 숫자 값보다 더 할 수 없습니다

/^\d{1,2}$/ 

그런 다음 확인

두 개의 숫자가있는 경우 첫 번째 숫자는 0 또는 1이어야하고 두 번째 숫자는 0, 1 또는 2 여야합니다. 그 부분을 표현하는 방법을 모르겠다 ...

그리고 가능하면 가능하면 그것을 하나의 정규 표현식에 포함시키는 것.

도움을 주시면 감사하겠습니다.

+1

정규 표현식을 사용하는 것이 가장 좋은 방법이라고 생각합니다. 어떤 언어를 사용하고 있습니까? – lonesomeday

+0

'09'는 허용되지 않습니까? 두 글자를 가지고 있고 두 번째 글자는'[012] '가 아닙니다. – Piskvor

+0

이것은 방대한 양의 유효성 검사 엔진에 의해 검증 된 수치 입력에서의 간단한 한 달 유효성 검사입니다. 정규 표현식의 이유는 정규 표현식을 사용해야하고 지금은 아니지만 지금은 이미 기존 규칙에 추가하는 것입니다. 계산에 값을 사용하지 않으므로 날짜 입력만으로 문자 유효성 검증이 충분할 것으로 보입니다. 모든 답변을 주셔서 감사합니다. – Forteasics

답변

14
정규식 이런 범위 다루는 맞지 않는

가 있지만, 어쨌든이 작동한다 :

/^(0?[1-9]|1[012])$/ 

설명 :

^  match start of the string 
(0?  optional zero 
[1-9]  any number between 1 and 9 
|1[012]) or match 1 followed by either a 0, 1, 2 i.e. 10, 11, 12. 
$   match end of string 
+0

하지만 선택 사항 인 0을 추가 하시겠습니까? 첫 번째 부분 바로 앞에 – frisco

+0

이 있습니다. 정규식을 업데이트했습니다. 01, 02, 03 등을 허용해야합니다.나는 이것이 월간 날짜의 유효성을 검사하는 것이라고 가정합니다. ;-) 012,013 등을 허용하지 않으려면 0을 이동 하시겠습니까? 첫 번째 괄호 안쪽에 :/^ (0? [1-9] | 1 [012]) $/ –

+0

예. 완벽합니다. – Forteasics

2

(정수가 주어진 값보다 작은 지 테스트)의 경우 실제로는 정규식을 사용하지 않아야합니다. 은 "문자 중 하나 X 또는 Y 또는 Z를 들어

if ($variable <= 12) { 
    // OK 
} 
else { 
    // Not OK 
} 
+0

js 유효성 검사 엔진 (Form Validation Engine 2.0)을 사용하여 다른 검사를 작성하거나 정규 표현식을 수정하는 것은 간단하지만 im이 약하기 때문에 정규식을 확장하려고합니다. – Forteasics

0

:

대신, 단지 (작업중인 언어에 따라 달라집니다 구문)이 하나 같은을 간단한 조건을 사용하여 0, 1, 또는의 모든 문자 : 또는 ... "

[012] 

수단, 대괄호 표현의 문자 클래스있다"".

0
(0[0-9])|(1[0-2]) 

이 0, 1 또는 2,이어서 임의의 한 자리 또는 한 뒤에 제로 일치

0

0 [0-9] | 1 [0-2]

012,351,
Description: 

[0-9] : number between 00 and 09 
    | : or 
1[0-2] : and if starting with 1, next number should be between 0 -1 (testing 10-12)