正则表达式1---QQ号合法性判断

需求:

1.不能以0开头

2.长度在4-12之间

3.只能是数字0-9

非正则表达式为

package demo;
/**
 * 正则表达demo1
 *检测QQ号正确性
 *1.长度
 *2.非法性(0开头,非数字)
 */
public class demo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(checkQQNum("482838223"));
		System.out.println(checkQQNum("1233e"));
		System.out.println(checkQQNum("0123"));

	}
	public static boolean checkQQNum(String qq) {
		boolean flag=true;	
		if(qq.length()>=4&&qq.length()<=11) {//长度4-11位
			if(!(qq.startsWith("0"))) {
				char [] arr=qq.toCharArray();
				for (int i = 0; i < arr.length; i++) {
					char ch=arr[i];
					if(!(ch>='0'&&ch<='9')) { //非0-9
						flag=false;
						break;
					}
				}
				
			}else {
				flag=false;
			}
		
		}else {
			flag=false;
		}
		return flag;	
	}
		
}

正则表达式

package demo;
/**
 * 正则表达demo1
 *检测QQ号正确性
 *1.长度
 *2.非法性(0开头,非数字)
 */
public class demo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String regex="[1-9]\\d{3,11}";
		System.out.println("12345110".matches(regex));

	}
}

其中 [1-9] 表示第一个数为数字1-9中的一个;

\\d{3,11}表示任意数字,长度在3-11位,即>=3 && <=11,与第一个数加起来刚好是4-12位

 

 

你可能感兴趣的:(java基础)