2010-06-22 2 views
38

PHP를 사용하여 전화 번호를 확인하는 방법PHP를 사용하여 전화 번호를 확인하는 방법은 무엇입니까?

+1

전화 번호를 * 유효하게 만드는 이유를 정의하십시오 *? – Gordon

+4

은 호주 전화 번호, 영국 번호, 국제 전화 번호 등입니까? 전 세계의 전화 번호를 확인하면 전자 메일 유효성 검사보다 많은 웜이 열릴 수 있습니다. 100 % 오류가없는 것을 본 적이 없다고 생각합니다. – HorusKol

+0

관련 : http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation –

답변

16

전화 번호가 패턴을 따라야하므로 정규식을 사용하여 입력 한 전화 번호를 regexp에서 정의한 패턴과 비교할 수 있습니다.

php에는 ereg와 preg_match() 함수가 있습니다. preg_match()를 사용하는 것이 좋습니다. 정규식의 스타일에 대한 더 많은 문서가 있습니다.

$phone = '000-0000-0000'; 

if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) { 
    // $phone is valid 
} 
+14

및 지역 번호 주위에 대괄호를 넣은 사람들이 있습니까? (202) 555 1212 – Mawg

+11

특정 형식 규칙을 강제하는 것은 미친 짓입니다. 국제 전화 걸기 접두어도 처리해야합니다. – Quentin

+3

preg_match 중간에 {3}이어야합니다. 맞습니까? {4}가 아닙니다. 적어도 미국 전화 번호는. –

13

난 당신이 지원하는 것을 목표로, 어떻게 엄격한 당신이 숫자 그룹, 공백 및 기타 분리 등의 사용을 강제 할 수 형식에 크게 의존 ....

아이디어를 얻으려면 this similar question을보십시오.

그런 다음 여기에 내가 유효한 10 자리 미국 전화 번호를 찾을 방법 ITU-T

+2

더하기 e.164 – Mawg

25

에서 번호 표준 추천입니다 E.164있다. 이 시점에서 나는 사용자가 자신의 컨텐츠를 원한다고 가정하므로 숫자 자체가 신뢰됩니다. 나는 궁극적으로 SMS 메시지를 보내는 앱에서 사용하고 있기 때문에 아무리 원하면 숫자 만 원한다. 나중에 언제든지 서식을 추가 할 수 있습니다.

//eliminate every char except 0-9 
$justNums = preg_replace("/[^0-9]/", '', $string); 

//eliminate leading 1 if its there 
if (strlen($justNums) == 11) $justNums = preg_replace("/^1/", '',$justNums); 

//if we have 10 digits left, it's probably valid. 
if (strlen($justNums) == 10) $isPhoneNum = true; 

편집 : 누구든지 관심이있는 경우 Java로 이식해야합니다. 그것은 모든 키 입력에서 실행되므로 상당히 밝게 유지하려고했습니다.

boolean isPhoneNum = false; 
if (str.length() >= 10 && str.length() <= 14) { 
    //14: (###) ###-#### 
    //eliminate every char except 0-9 
    str = str.replaceAll("[^0-9]", ""); 

    //remove leading 1 if it's there 
    if (str.length() == 11) str = str.replaceAll("^1", ""); 

    isPhoneNum = str.length() == 10; 
} 
Log.d("ISPHONENUM", String.valueOf(isPhoneNum)); 
+2

입력 한 숫자가 +1981878978 인 경우 – Bugfixer

+0

@Bugfixer 길이가 11 인 경우 선행 1 만 제거합니다. – Staysee

+0

일부 변경 사항과 함께이 기능을 사용할 수있었습니다. 직접 답변 해 주셔서 감사합니다. – Kray

관련 문제