Java正则表达式验证电话号码 朱雀 2021-12-14 11:41 277阅读 0赞 在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话。如果输入的内容不合法,则会向用户输出提示。本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果输出。 在这里使用前面介绍的元字符、限定符及正则表达式来实现,步骤如下。 (1) 创建名为 Test21.java 的 [Java][] 文件,在 main() 方法中开始编写代码。 1. import java.util.Scanner; 2. import java.util.regex.Matcher; 3. import java.util.regex.Pattern; 4. public class Text21 5. \{ 6. public static void main(String\[\] args) 7. \{ 8. //编写代码 9. \} 10. \} (2) 声明 String 类型的 regex 变量,它是用于验证电话号码的表达式。代码如下: 1. String regex="0\\\\d\{2,3\}\[-\]?\\\\d\{7,8\}|0\\\\d\{2,3\}\\\\s?\\\\d\{7,8\}|13\[0-9\]\\\\d\{8\}|15\[1089\]\\\\d\{8\}"; 电话号码包括固定电话和手机号码。其中固定电话是由区号和号码组成,区号是以 0 开头的,后面是 2~3 位数,因此在匹配区号的时候可以使用正则表达式 `0\d{2,3}`,固定电话号码由 7~8 位数字组成,因此可以使用表达式 `\d{7,8}` 来进行匹配。固定电话的组合方式可能是“区号-号码”或者是“区号号码”,因此匹配固定电话号码时,可以使用“0\\\\d\{2,3\}\[-\]?\\\\d\{7,8\}|0\\\\d\{2,3\}\\\\s?\\\\d\{7,8\}” 表达式。 手机号码是 11 位数,并且以数字 1 开头。考虑到手机号码的特殊性,这里使用“13\[0-9\]\\\\d\{8\}|15\[1089\]\\\\d\{8\}”表达式进行匹配。该正则表达式验证以 13 或 15 开头的手机号码; 以 15 开头的电话号码,第 3 位数字只能是 1、0、8、9 中的一个。 (3) 声明 String 类型的 answer 变量,它表示是否继续验证电话号码。代码如下: 1. String answer="Y"; (4) 使用 do…while 语句进行操作,首先接收用户在控制台输入的电话号码,然后利用 Pattern 类进行编译,接着创建给定输入模式的匹配器,调用 matches() 方法返回匹配的结果。如果结果为 true 表示验证通过,如果为 false 表示验证失败。代码如下: 1. do 2. \{ 3. System.out.print("请留下您的电话号码:"); 4. Scanner scan=new Scanner(System.in); 5. String phone=scan.next(); //接收用户在控制台输入的电话号码 6. Pattern pattern=Pattern.compile(regex); //编译正则表达式 7. Matcher matcher=pattern.matcher(phone); //创建给定输入模式的匹配器 8. boolean bool=matcher.matches(); 9. if(bool) 10. \{ //如果验证通过 11. System.out.println("输入的电话号码格式正确。"); 12. \} 13. else 14. \{ 15. System.out.println("输入的电话号码无效,格式不正确。"); 16. \} 17. System.out.print("是否继续输入?(Y/N 或者 y/n)"); 18. answer=scan.next(); 19. \}while(answer.equalsIgnoreCase("Y")); 20. System.out.println("注册结束。"); (5) 运行代码进行测试,如下所示: 请留下您的电话号码:18812345678 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:180112345678 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)n 注册结束。 请留下您的电话号码:010-12345678 输入的电话号码格式正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:010-123456789 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:0388-12345678 输入的电话号码格式正确。 是否继续输入?(Y/N 或者 y/n)n 注册结束。 [Java]: http://c.biancheng.net/java/
还没有评论,来说两句吧...