JAVA 正则表达式 根据错误给予用户提示

正则表达式错误定位
本文探讨了在使用正则表达式验证电子邮件地址格式时如何有效地反馈错误信息。通过具体的示例代码,展示了如何逐一检查可能存在的问题,如首字符非法、账号中出现非法字符等,并提供了相应的错误提示。

今天偶然需要用到正则,对规则有点不熟悉重温了一下。发现网络上大多数都是对正则的正确性判断,但是都没有提到错误地方如何反馈信息。

举个例子说明我的目的:

       都知道邮箱的正确格式是XXXXXX@XXX.XXX (比如这样X......X@qq.com),判断格式正确性的正则表达式网上很多。但是我现在想做的是用户输入错误的信息时候及时给用户提供错误的地方。例如

1.首字母不能为数字和英文字母以外的。

2.账号中只能拥有数字、英文、下划线_、 点.

	public static void main(String[] args) throws Exception {

		String regex="2!d56@qq.com";//待验证
		Pattern p=Pattern.compile("^(\\w[\\w_\\.]{7,19})@([\\w_\\.]+)\\.\\w+");
		Matcher m=p.matcher(regex);
		if(m.matches()){
			System.out.println("验证成功");//格式正确
			System.out.println(m.group(1));//@之前的账号
		}else{
			//不正确的话寻找错误
			//1.首字符是w以外的错误
			boolean flag=Pattern.compile("^\\w").matcher(regex).find();
			if(!flag){
				System.out.println("首字母只能是英文字母和数字!");
			}
			//2.账号中包含非法字符
			boolean flag1=Pattern.compile("^\\w[\\w_\\.]+@").matcher(regex).find();
			if(!flag1){
				System.out.println("账号中含有非法字符");
			}
			//同理一步步排查账号长度 等等
		}
		
我目前能想到的方法就是逐个判断。如果有更好的方法请务必留言告诉我,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值