2010-06-02 5 views
3

아일랜드 전화 번호의 유효성을 검사해야하지만 너무 불친절하게 만들고 싶지는 않지만 많은 사람들이 전화 번호를 쓰는 데 익숙합니다. 지역 번호를 괄호로 묶은 전화 번호 전화 번호는 5 ~ 7 자리이며, 일부는 지역 번호 또는 이동 통신사 사이에 공백을 추가합니다.아일랜드어 전화 번호에 대한 정규식 필요

아일랜드어 유선 전화 번호의 형식은 1 - 4 자리 숫자와 5 - 8 자리 숫자입니다.

예컨대

(021) 9876543 
(01)9876543 
01 9876543 
(0402)39385 

Javascript/PHP의 정규식을 찾고 있는데요.

+1

"1에서 4 자리 사이의 지역 번호". 아니요, 최단 지역 코드는 두 자리입니다. 또한 모든 지역 번호는 '1'로 시작하는 특수 코드를 제외하고 '0'으로 시작합니다. ('1800' 무료 전화, 1890' 시내 전화,'1580' 비싸기 등) – TRiG

+0

TRiG, ​​기술적으로 당신 말이 맞습니다. 그러나 더블린 (01)과 함께, 어떤 사람들은 처음에 국가 코드를 추가했기 때문에 코르크 사람들이 쓰는 것과 똑같이 (1) 쓰는 데 익숙합니다. +353 1 1234567 나는이 사람들을 혼동하고 싶지 않습니다. 내가 필요로하는 것보다 더. 건배. –

답변

1

합니다. 그것은 전화 번호에 공백이 나타나는 것을 고려해야합니다.

preg_match('|^\s*\(?\s*\d{1,4}\s*\)?\s*[\d\s]{5,10}\s*$|', $phone); 

사람들은 종종 전화 번호 부분을 공백으로 2 부분으로 나눕니다.

는 업데이트 : 당신이 전화 번호를 확인하고 동시에 공간을 트리밍하고자하는 경우, 당신은 이런 식으로 작업을 수행 할 수 있습니다 만약 그랬다면, 난이 공간과 브래킷을 제거 것

if (preg_match('|^\s*(\(?\s*\d{1,4}\s*\)?\s*[\d\s]{5,10})\s*$|', $phone, $m)) 
{ 
    echo $m[1]; 
} 
+0

정말 대단합니다. 거의 완벽 해. 어쨌든 처음부터 끝까지 공간을 다듬을 수 있습니까? –

+0

일치하기 전에 trim ($ phone)을 사용하거나 일치하는 문자열에 first/final \ s * 앞에와 (와)를 넣은 다음 처음으로 일치하는 문자열을 읽습니다. 내 대답을 업데이트 할게. –

+0

감사합니다 mr.b, 나는 이미 서버 측에서 트리밍 중이며 클라이언트 측에서도이를 수행하고 싶습니다. jQuery에서 $ .trim을 사용하고 있지만 공백이 있으면 실패 할 수도 있습니다. 다시 생각해 보면 과잉이라고 생각됩니다. –

1

이 하나의 시도 : 지역 번호 제외

http://regexlib.com/REDetails.aspx?regexp_id=2485

수정 된 버전이 작동 할 수

\d{3}\s\d{4} 
+0

안녕하세요, 사이먼, 답장을 건넨다. 나는 그 코드를 별도로 처리하고'/^\ (0 \) \ s \ d \ s \ d {3} \ s \ d { 4} $ /'내가 원하는 방식으로 작동하지 않는 것 같습니다. –

1

, 최소 길이와 최대 길이 사이에 있는지 확인하십시오.

+0

+1 나는 그것을 할 것이다. – Josh

2

Validate_IE 클래스를 살펴볼 가치가 있습니다 - 가능한 다양한 아일랜드 전화 번호 (지역 번호, 휴대 전화 번호, 모바일 단축 번호 등 포함)를 처리하는 phoneNumber 기능이 포함되어 있습니다.

아일랜드 데이터로 작업하는 경우 아일랜드 은행 계좌에서 운전 면허증 번호에 이르기까지 모든 것을 검증 할 수있는 일련의 추가 방법이 있습니다.

관련 문제