判断用户输入的数字是一个合法的电话号码的正则表达式

// TODO : 用正则表达式判断一个字符串中是否为电话号码,--无误格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX
		
		String s="333212";

		Pattern p=Pattern.compile("^(\(\d{3:4}\)|\d{3:4}-)?\d{7:8}$");

		Matcher m=p.matcher(s);

		System.out.println(m.matches());
		
		/**
		 *  考证数字:^[0-9]*$
			考证n位的数字:^\d{n}$
			考证至多n位数字:^\d{n:}$
			考证m-n位的数字:^\d{m:n}$
			考证零和非零开头的数字:^(0|[1-9][0-9]*)$
			考证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
			考证有1-3位小数的正实数:^[0-9]+(.[0-9]{1:3})?$
			考证非零的正整数:^\+?[1-9][0-9]*$
			考证非零的负整数:^\-[1-9][0-9]*$
			考证非负整数(正整数 + 0) ^\d+$
			考证非正整数(负整数 + 0) ^((-\d+)|(0+))$
			考证长度为3的字符:^.{3}$
			考证由26个英文字母组成的字符串:^[A-Za-z]+$
			考证由26个大写英文字母组成的字符串:^[A-Z]+$
			考证由26个大写英文字母组成的字符串:^[a-z]+$
			考证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
			考证由数字、26个英文字母恐怕下划线组成的字符串:^\w+$
			考证用户密码:^[a-zA-Z]\w{5:17}$无误格式为:以字母开头,长度在6-18之间,只能包罗字符、数字和下划线。
			考证是否含有 ^%&rev;':;=?$"等字符:[^%&rev;':;=?$\x22]+
			考证汉字:^[\一-\龥]:{0:}$
			考证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
			考证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&rev;=]*)?$;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
			考证电话号码:^(\(\d{3:4}\)|\d{3:4}-)?\d{7:8}$:--无误格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
			考证身份证号(15位或18位数字):^\d{15}|\d{}18$
			考证一年的12个月:^(0?[1-9]|1[0-2])$ 无误格式为:“01”-“09”和“1”“12”
			考证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$无误格式为:01、09和1、31。
			整数:^-?\d+$
			非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
			正浮点数^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
			非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
			负浮点数^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
			浮点数 ^(-?\d+)(\.\d+)?$
		 */
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,可以使用正则表达式对手机号进行格式验证。一个有效的手机号应该满足以下条件:11位数字,以1开头,第二位为3、4、5、6、7、8、9中的一个数字。 首先,需要导入Java的正则表达式库import java.util.regex.*,然后使用Pattern和Matcher两个类来实现对手机号的匹配。 具体代码如下: ```java import java.util.regex.*; public class PhoneNumTest { public static void main(String[] args) { String phoneNum1 = "13812345678"; String phoneNum2 = "12345678901"; // 定义电话号码正则表达式 String pattern = "^1[3456789]\\d{9}$"; // 编译正则表达式 Pattern r = Pattern.compile(pattern); // 创建Matcher对象 Matcher m1 = r.matcher(phoneNum1); Matcher m2 = r.matcher(phoneNum2); // 进行匹配 if (m1.matches()) { System.out.println(phoneNum1 + "是一个有效的手机号码"); } else { System.out.println(phoneNum1 + "不是一个有效的手机号码"); } if (m2.matches()) { System.out.println(phoneNum2 + "是一个有效的手机号码"); } else { System.out.println(phoneNum2 + "不是一个有效的手机号码"); } } } ``` 上述代码中,首先定义了一个电话号码正则表达式。这个正则表达式使用了"^1[3456789]\\d{9}$"的格式,表示必须以数字1开头,第二位为3、4、5、6、7、8、9中的一个数字,后面跟着9位数字。其中,\\d表示任意数字。 然后,使用Pattern类的compile()方法编译正则表达式,并创建了两个Matcher对象,分别用来匹配两个手机号码。 最后,通过Matcher对象的matches()方法进行匹配,如果匹配成功,输出"是一个有效的手机号码";如果匹配失败,输出"不是一个有效的手机号码"。 以上就是Java中基于正则表达式对手机号进行格式验证的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值