java正则表达式验证
Validating a phone number using regular expression is tricky because the phone number can be written in many formats and can have extensions also.
使用正则表达式验证电话号码非常棘手,因为电话号码可以用多种格式编写,也可以有扩展名。
For example, here are some of the common way of writing phone numbers:
例如,以下是一些写电话号码的常用方法:
12345678901234567890 123-456-7890123-456-7890 123-456-7890 x1234123-456-7890 x1234 123-456-7890 ext1234123-456-7890 ext1234 (123)-456-7890(123)-456-7890 123.456.7890123.456.7890 123 456 7890123 456 7890
Java中的电话号码验证 (Phone Number Validation in Java)
Here I am usingjava regular expressionsto validate any of the above format phone numbers.
在这里,我使用Java正则表达式来验证上述任何格式的电话号码。
package com.journaldev.util;public class PhoneNumberValidator {public static void main(String[] args) {System.out.println("Phone number 1234567890 validation result: "+validatePhoneNumber("1234567890"));System.out.println("Phone number 123-456-7890 validation result: "+validatePhoneNumber("123-456-7890"));System.out.println("Phone number 123-456-7890 x1234 validation result: "+validatePhoneNumber("123-456-7890 x1234"));System.out.println("Phone number 123-456-7890 ext1234 validation result: "+validatePhoneNumber("123-456-7890 ext1234"));System.out.println("Phone number (123)-456-7890 validation result: "+validatePhoneNumber("(123)-456-7890"));System.out.println("Phone number 123.456.7890 validation result: "+validatePhoneNumber("123.456.7890"));System.out.println("Phone number 123 456 7890 validation result: "+validatePhoneNumber("123 456 7890"));}private static boolean validatePhoneNumber(String phoneNo) {//validate phone numbers of format "1234567890"if (phoneNo.matches("\\d{10}")) return true;//validating phone number with -, . or spaceselse if(phoneNo.matches("\\d{3}[-\\.\\s]\\d{3}[-\\.\\s]\\d{4}")) return true;//validating phone number with extension length from 3 to 5else if(phoneNo.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(phoneNo.matches("\\(\\d{3}\\)-\\d{3}-\\d{4}")) return true;//return false if nothing matches the inputelse return false;}}
Here is the output of the above phone number regex validation program.
这是上述电话号码正则表达式验证程序的输出。
Phone number 1234567890 validation result: truePhone number 123-456-7890 validation result: truePhone number 123-456-7890 x1234 validation result: truePhone number 123-456-7890 ext1234 validation result: truePhone number (123)-456-7890 validation result: truePhone number 123.456.7890 validation result: truePhone number 123 456 7890 validation result: true
The best part of this program is that it’s easy to understand and you can extend it easily to support other phone number formats also.
该程序最好的部分是易于理解,您也可以轻松扩展它以支持其他电话号码格式。
GitHub Repository.GitHub Repository中检出更多正则表达式示例。
翻译自: /641/regular-expression-phone-number-validation-in-java
java正则表达式验证