日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

如何在Java中验证电话号码(正则表达式+ Google libphonenumber)

發布時間:2023/12/3 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在Java中验证电话号码(正则表达式+ Google libphonenumber) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于如何在不同國家(例如美國,美國)使用Java驗證電話號碼的快速指南。 帶有正則表達式和Google libphonenumber API的示例程序。

1.簡介

在本教程中,我們將學習如何在java中驗證電話號碼 。 這主要是為了驗證美國和印度的國家/地區電話號碼,但是在看到示例之后,您可以為其他國家/地區開發驗證規則。

這是驗證移動電話號碼的常見要求,因為我們會進行電子郵件地址驗證的驗證,但是Java沒有內置功能來提供此類方法。 但是,我們可以借助正則表達式和帶有libphonenumber的google api來實現這一點。

讓我們跳入編寫示例程序。

2.正則表達式

正則表達式的實現有些棘手,因為電話號碼具有多種格式且具有不同的擴展名。

例如,以下是一些常見的寫電話號碼的方法
美國 。

1234567890 123 - 456 - 7890 123 - 456 - 7890 x1234 123 - 456 - 7890 ext1234 ( 123 )- 456 - 7890 123.456 . 7890 123 456 7890

印度:

9123124123

使用正則表達式驗證電話號碼

package com.java.w3schools.blog.java.program.to.libphonenumber; public class PhoneValidationRegularExpression { public static void main(String[] args) { System.out.println( "Validation for 1234567890 : " + validatePhoneNumber( "1234567890" )); System.out.println( "Validation for 1234 567 890 : " + validatePhoneNumber( "Validation for 1234 567 890 : " + validatePhoneNumber( "1234 567 890" )); System.out.println( "Validation for 123 456 7890 : " + validatePhoneNumber( "Validation for 123 456 7890 : " + validatePhoneNumber( "123 456 7890" )); System.out.println( "Validation for 123-567-8905 : " + validatePhoneNumber( "123-567-8905" )); System.out.println( "Validation for 9866767545 : " + validatePhoneNumber( "9866767545" )); System.out.println( "Validation for 123-456-7890 ext9876 : " + validatePhoneNumber( "123-456-7890 ext9876" )); } private static boolean validatePhoneNumber(String phoneNumber) { // validate phone numbers of format "1234567890" if (phoneNumber.matches( "\\d{10}" )) return true ; // validating phone number with -, . or spaces else if (phoneNumber.matches( "\\d{3}[-\\.\\s]\\d{3}[-\\.\\s]\\d{4}" )) return true ; // validating phone number with extension length from 3 to 5 else if (phoneNumber.matches( "\\d{3}-\\d{3}-\\d{4}\\s(x|(ext))\\d{3,5}" )) return true ; // validating phone number where area code is in braces () else if (phoneNumber.matches( "\\(\\d{3}\\)-\\d{3}-\\d{4}" )) return true ; // Validation for India numbers else if (phoneNumber.matches( "\\d{4}[-\\.\\s]\\d{3}[-\\.\\s]\\d{3}" )) return true ; else if (phoneNumber.matches( "\\(\\d{5}\\)-\\d{3}-\\d{3}" )) return true ; else if (phoneNumber.matches( "\\(\\d{4}\\)-\\d{3}-\\d{3}" )) return true ; // return false if nothing matches the input else return false ; } }

輸出:

Validation for 1234567890 : true Validation for 1234 567 890 : true Validation for 123 456 7890 : true Validation for 123 - 567 - 8905 : true Validation for 9866767545 : true Validation for 123 - 456 - 7890 ext9876 : true

3. Google libphonenumber示例

如果您使用正則表達式方法,則需要進行大量測試以涵蓋所有極端情況。 但是,如果我們有一些API可以通過適當的測試來提供此功能,那么可以在我們的應用程序中很好地使用它。

Google將 libphonenumber API 作為一個開放源代碼庫提供,該庫提供了諸如解析,格式化,驗證和存儲國際電話號碼的功能 。

此API經過優化,可在智能手機上運行,??并且也可用于Android框架。

此API的主要優點是您可以格式化或驗證和解析任何國家或地區的手機號碼。

PhoneNumberUtil類是用于國際電話號碼的實用程序。 功能包括格式化,解析和驗證。

package com.java.w3schools.blog.java.program.to.libphonenumber; import com.google.i18n.phonenumbers.NumberParseException; import com.google.i18n.phonenumbers.PhoneNumberUtil; import com.google.i18n.phonenumbers.Phonenumber; import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; public class PhoneValidationWIthGooglelibphonenumberAPI { public static void main(String[] args) throws NumberParseException { PhoneNumberUtil numberUtil = PhoneNumberUtil.getInstance(); PhoneNumber phoneNumber = numberUtil.parse( "9866123456" , "IN" ); boolean isValid = numberUtil.isValidNumber(phoneNumber); System.out.println( "Checking given phone number is vaid : " + isValid); } }

輸出:

Checking given phone number is vaid : true

驗證美國或印度電話號碼的另一個示例:

樣本電話號碼

package com.java.w3schools.blog.java.program.to.libphonenumber; import com.google.i18n.phonenumbers.NumberParseException; import com.google.i18n.phonenumbers.PhoneNumberUtil; import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; public class PhoneValidationWIthGooglelibphonenumberAPI { public static void main(String[] args) throws NumberParseException { System.out.println( "USA phone number validations: " ); String[] usPhoneNumbers = { "(541) 754-3010" , "+1-541-754-3010" , "1-541-754-3010" , "001-541-754-3010" , "191 541 754 3010" }; validatePhoneNumber(usPhoneNumbers, "US" ); System.out.println( "\nindia phone number validations: " ); String[] indiaPhoneNumbers = { "+91 7503907302" , "9702522865" , "+91–8477812345" , "+91 9999999999" , "+91 9688 123 456" , "+9688 123 456" }; validatePhoneNumber(indiaPhoneNumbers, "IN" ); } private static void validatePhoneNumber(String[] phoneNumbers, String region) throws NumberParseException { PhoneNumberUtil numberUtil = PhoneNumberUtil.getInstance(); for (String number : phoneNumbers) { PhoneNumber phoneNumber = numberUtil.parse(number, region); boolean isValid = numberUtil.isValidNumber(phoneNumber); if (isValid) { System.out.println(number + " is a valid number." ); } else { System.out.println(number + " is a not valid number." ); } } } }

輸出:

USA phone number validations: ( 541 ) 754 - 3010 is a valid number. + 1 - 541 - 754 - 3010 is a valid number. 1 - 541 - 754 - 3010 is a valid number. 001 - 541 - 754 - 3010 is a not valid number. 191 541 754 3010 is a not valid number. india phone number validations: + 91 7503907302 is a valid number. 9702522865 is a valid number. + 91 – 8477812345 is a valid number. + 91 9999999999 is a valid number. + 91 9688 123 456 is a valid number. + 9688 123 456 is a not valid number.

PhoneNumberUtil API

5. PhoneNumberType

此API支持以下所有類型的數字 。

FIXED_LINE FIXED_LINE_OR_MOBILE MOBILE PAGER PERSONAL_NUMBER PREMIUM_RATE SHARED_COST TOLL_FREE UAN UNKNOWN VOICEMAIL VOIP

PhoneNumberUtil.PhoneNumberType

六,結論

在本文中,我們已經看到了如何使用regex和Google開源api libphonenumber在Java中驗證電話號碼 。

GitHub代碼

Google API

翻譯自: https://www.javacodegeeks.com/2020/04/how-to-validate-phone-numbers-in-java-regular-expression-google-libphonenumber.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的如何在Java中验证电话号码(正则表达式+ Google libphonenumber)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。