국제 전화 번호의 사용자 입력을 확인해야합니다. E.164 에 따르면 최대 길이는 15 자리이지만 최소값에 대한 정보를 찾을 수 없습니다. 더하기 부호 또는 구분 기호가없는 숫자 만 고려합니다.
국제 전화 번호의 사용자 입력을 확인해야합니다. E.164 에 따르면 최대 길이는 15 자리이지만 최소값에 대한 정보를 찾을 수 없습니다. 더하기 부호 또는 구분 기호가없는 숫자 만 고려합니다.
답변:
다른 출처에 따르면 E-164 형식의 최소 길이는 국가마다 다릅니다. 예를 들어 :
스웨덴의 경우 : 국가 번호를 제외한 최소 숫자 길이는 7 자리입니다. - 공식 출처 (국가 코드 46)
솔로몬 제도 의 경우 유선 전화의 경우 5 개입니다. - 출처 (국가 코드 677)
... 등등. 국가 코드를 포함하여 최소 길이는 스웨덴의 경우 9 자리, 이스라엘의 경우 11 자리, 솔로몬 제도의 경우 8 자리입니다.
편집 (청소 솔루션) : 실제로 길이 등의 다른 확인을 통해 국제 전화 번호를 확인하는 대신 Google의 libphonenumber 라이브러리를 사용할 수 있습니다 . E164 형식의 전화 번호를 직접 확인할 수 있습니다. 그것은 모든 것을 고려할 것이고 숫자가 유효한 E164 형식이라면 국가를 제공 할 필요조차 없습니다. 꽤 좋습니다! 예를 들면 :
String phoneNumberE164Format = "+14167129018"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber phoneNumberProto = phoneUtil.parse(phoneNumberE164Format, null);
boolean isValid = phoneUtil.isValidNumber(phoneNumberProto); // returns true if valid
if (isValid) {
// Actions to perform if the number is valid
} else {
// Do necessary actions if its not valid
}
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}
숫자를 확인하는 국가를 알고 있으면 E164 형식도 필요 없으며 .parse
전달하는 대신 국가를 기능으로 지정할 수 있습니다 null
.
getPhoneType
UAN을 반환하는 것 같습니다. 이 2222 숫자는 UAN입니다. 그러나 Universal Access Numbers도 길어질 수 있습니다. 기술적으로는 유효한 숫자 인 것 같습니다. 따라서 전화 번호 유형이나 최소 길이를 확인할 수 있습니다.
2015-06-27 편집 : 국가 코드를 포함하여 최소값은 실제로 8입니다. 내 잘못이야.
원본 게시물
사용하는 최소 전화 번호는 10 자리입니다. 국제 사용자는 항상 국가 코드를 입력해야하며 국가 코드를 세면 10 자리 미만의 국가가 없다는 것을 알고 있습니다.
자세한 정보는 여기 : https://en.wikipedia.org/wiki/Telephone_numbering_plan
Saint Helena (형식 : +290 XXXX) 및 Niue (형식 : +683 XXXX)의 최소 길이는 4입니다.