2014-11-06 4 views
0

사용자로부터 입력을 888-999-6666..i.e로 가져오고 싶습니다. 3 개의 숫자 다음에 '-'다음에 3 개의 숫자 그리고 다시 '-'그리고 마지막으로 4 개의 숫자. 자바 스크립트에서 다음 정규 표현식을 사용하고 있습니다.Java Script 숫자 형식의 정규식이 작동하지 않습니다.

 var num1=/^[0-9]{3}+-[0-9]{3}+-[0-9]{3}$/; 
    if(!(form.num.value.match(num1))) 
      { 
      alert("Number cannot be left empty"); 
      return false; 
      } 

하지만 작동하지 않습니다. var num1=/^[0-9]+-[0-9]+-[0-9]$/;을 사용하는 경우 적어도 두 개의 '-'는 필요하지만 숫자는 제한하지 말아야합니다.

어떻게 RE를 요구 사항으로 사용할 수 있습니까? 그리고 위의 코드가 작동하지 않는 이유는 무엇입니까?

+0

'var num1 =/^ [0-9] {3} + - [0-9] {3} + - [0-9] {3} $ /;'마지막 심볼 클래스에 가깝게 입력 하시겠습니까? '{4}'를 원하셨습니까? –

+1

@SergeyLagutin'{}'다음의'+'는 PHP가 지원하는 소유량 한정 기호처럼 작동하지만 js는 –

+0

@AvinashRaj에게 설명해 주셔서 감사합니다! –

답변

1

반복 수량 한정자 {} 바로 뒤에있는 + 기호를 제거하십시오. 그리고 마지막으로 [0-9]{3}[0-9]{4}으로 바꾸십시오. 그러면 마지막 기호 다음 정확히 4 자리를 사용할 수 있습니다.

var num1=/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/; 

DEMO

또한 \d[0-9]을 작성할 수 있습니다.

0

귀하의 정규식은 다음과 같아야합니다 정규식에 추가 + 후 번호 범위가

var num1=/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/; 

.

0

아래 예제에서 regex.check를 실행하십시오. 당신의 예에서

var num='888-999-6668'; 
 
var num1=/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/; 
 
    if(!(num.match(num1))) 
 
    { 
 
     alert("Number cannot be left empty"); 
 
    }else{ 
 
     alert("Match"); 
 
    }

여기 {3}, 발생하는 문제 후 추가 +의 symbole가있다. 그래서 나는 그것을 제거하고 그것은 효과가 있었다.

0
var num1=/^\d{3}-\d{3}-\d{4}$/; 

나는 이것이 당신에게 도움이 될 것이라고 생각합니다. 나머지 코드는 동일합니다.

관련 문제