2011-10-18 2 views
0

문자열에 9 개의 또는 12 개의 숫자 (10 또는 11은 아님)가 포함되어 있는지 확인하기 위해 regex를 사용하려고합니다. 현재 두 개의 정규식 목록을 사용하고 입력 문자열을 두 번 확인합니다. 이것이 단순화 될 수 있습니까?자바 스크립트 정규식 : 문자열에서 9 또는 12 자리

var regexes = [/^[0-9]{9}$/, /^[0-9]{12}$/] 
for (var i = 0; i < regexes.length; ++i) { 
     if (regexes[i].test(input)) 
      return true; 
} 
return false; 

답변

5

당신은 다음과 같은 정규식을 사용할 수

/^[0-9]{9}([0-9]{3})?$/ 

그래서 아마도 3 개 이상의 숫자 뒤에 9 자리.

그러나 두 가지 가능성을 확인하는 데는 아무런 문제가 없습니다.

+0

+1 너무 늦었다 : – FailedDev

+0

또한 숫자를 의미하는 \ d''사용할 수 있습니다. – pimvdb

+0

두 가지 가능성을 확인하면 성능에 영향을 미칠 것이라고 생각했을까요? – Patrick

2
/^\d{9}(\d{3})?$/ 

이 작동합니다 : D

2
var regex = /^[0-9]{9}$|^[0-9]{12}$/; 
if (input.match(regex)!= null) 
    return true; 
관련 문제