2011-08-13 5 views
0
if(!preg_match('^[\+0-9\s\-]+$',$tel_nr)) 
      { 
       die("Invalid number."); 
      } 

숫자는 숫자, 공백, 빼기 기호, 더하기 기호, 기타는 없으며, 최소 5 자리 숫자와 최대 12 자리 숫자로 끝내고 싶습니다.이 정규식이 작동하지 않는 이유는 무엇입니까?

시도해 보면 아무 일도 일어나지 않습니다. 즉, "12345"가 실패합니다.

어떤 도움이 필요합니까?

답변

8
!preg_match('/^[\+0-9\s\-]{5,12}$/',$tel_nr)) 

구분 기호를 사용하는 것을 잊었습니다.

+0

은주의 날이에 최대 및 최소 번호를 확인 구현하기 :) :이 자리라면, 당신은 이런 식으로 뭔가를 원하는? –

+0

@ Camran : 방금 업데이트 된 코드를 확인했습니다. :) – Shef

+0

좋습니다, 감사합니다! :)) ... –

0

추가 구분 기호 + {minlenght, maxlenght} 당신은 시작과 표현의 끝을 구분하는/이용해야

if(!preg_match('~^[\+0-9\s\-]{5,12}$~',$tel_nr)) 
      { 
       die("Invalid number."); 
      } 
0

. 다른 문자는 옵션 인 상태,

if (!preg_match('/^[\+0-9\s\-]+$/',$tel_nr)) { 
    die("Invalid number."); 
}  
0

것은 당신이 5-12 문자를 찾고 계십니까은 총, 또는 5-12 숫자 : 다음 코드는 작동?

if (!preg_match('~^(?:[\+\s\-]*[0-9]){5,12}[\+\s\-]*$~', $tel_nr)) 
관련 문제