ValidUtils.java 3.13 KB
/**
 * Copyright 2015-2025 FLY的狐狸(email:jflyfox@sina.com qq:369191470).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */

package com.jflyfox.util.extend;

import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 验证类
 * 
 * 2015年3月18日 下午3:21:14
 * flyfox 330627517@qq.com
 */
public class ValidUtils {

	private static final char[] enChar = new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
	private static final char[] numChar = new char[]{'0','1','2','3','4','5','6','7','8','9'};
	
	static {
		Arrays.sort(enChar);
		Arrays.sort(numChar);
	}
	
	/**
	 * 英文字母或者数字
	 * 
	 * 2015年3月18日 下午3:19:36
	 * flyfox 330627517@qq.com
	 * @param test
	 * @return
	 */
	public static boolean isEnglishOrNumber(String test) {
		for (char ch : test.toCharArray()) {
			if (Arrays.binarySearch(enChar, ch) < 0 && Arrays.binarySearch(numChar, ch) < 0) {
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 英文字母
	 * 
	 * 2015年3月18日 下午3:19:44
	 * flyfox 330627517@qq.com
	 * @param test
	 * @return
	 */
	public static boolean isEnglish(String test) {
		for (char ch : test.toCharArray()) {
			if (Arrays.binarySearch(enChar, ch) < 0) {
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 数字
	 * 
	 * 2015年3月18日 下午3:20:00
	 * flyfox 330627517@qq.com
	 * @param test
	 * @return
	 */
	public static boolean isNumber(String test) {
		for (char ch : test.toCharArray()) {
			if (Arrays.binarySearch(numChar, ch) < 0) {
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 手机号验证
	 * 
	 * 2015年3月18日 下午3:20:12
	 * flyfox 330627517@qq.com
	 * @param str
	 * @return 验证通过返回true
	 */
	public static boolean isMobile(String str) {
		Pattern p = null;
		Matcher m = null;
		boolean b = false;
		p = Pattern.compile("^[1][3,4,5,8][0-9]{9}$"); // 验证手机号
		m = p.matcher(str);
		b = m.matches();
		return b;
	}

	/**
	 * 电话号码验证
	 * 
	 * 2015年3月18日 下午3:20:12
	 * flyfox 330627517@qq.com
	 * @param str
	 * @return 验证通过返回true
	 */
	public static boolean isPhone(String str) {
		Pattern p1 = null, p2 = null;
		Matcher m = null;
		boolean b = false;
		p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的
		p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$"); // 验证没有区号的
		if (str.length() > 9) {
			m = p1.matcher(str);
			b = m.matches();
		} else {
			m = p2.matcher(str);
			b = m.matches();
		}
		return b;
	}
}