2015/9/15

2015/9/15日

膜拜大神亮之通过正则表达式来判断是否为指定字符串。

  • 判断电话号码
  • 验证邮箱
  • 验证数字
  • 验证姓名
package com.zsz.develop.lightverify;

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

import android.text.TextUtils;

/**
 * @author LigthWang
 *
 * 描述:验证的处理封装
 */
public class YanZhengUtil {

// 验证电话号码
public static boolean isPhoneNumber(String phoneNumber) {
    if (TextUtils.isEmpty(phoneNumber)) {
        return false;
    }

    String expression = "^1[0-9]{10}$";

    Pattern pattern = Pattern.compile(expression);
    Matcher matcher = pattern.matcher(phoneNumber);

    if (matcher.matches()) {
        return true;
    } else {
        return false;
    }
}

// 验证邮箱
public static boolean isEmail(String email) {
    if (TextUtils.isEmpty(email)) {
        return false;
    }

    final String expression = "[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?";

    Pattern pattern = Pattern.compile(expression);
    Matcher matcher = pattern.matcher(email);

    if (matcher.matches()) {
        return true;
    } else {
        return false;
    }
}

// 验证数字
public static boolean isNumeric(String str) {
    if (TextUtils.isEmpty(str)) {
        return false;
    }
    Pattern pattern = Pattern.compile("^[0-9]*$");
    Matcher isNum = pattern.matcher(str);
    if (isNum.matches()) {
        return true;
    } else {
        return false;
    }
}

/**
 * 验证姓名<br/>
 * 中文2-20个字符<br/>
 * 英文2-20个字符<br/>
 * 中英文不能混用
 * 
 * @param name
 *            姓名字符串
 * @return
 */
public static boolean validateName(String name) {

    if (TextUtils.isEmpty(name)) {
        return false;
    }
    // 2-4中文
    Pattern pattern1 = Pattern.compile("^[\u4E00-\u9FA5]{2,20}$");
    Matcher matcher1 = pattern1.matcher(name);

    // 2-12英文
    Pattern pattern2 = Pattern.compile("^[a-zA-Z]{2,20}$");
    Matcher matcher2 = pattern2.matcher(name);

    if (matcher1.matches() || matcher2.matches()) {
        return true;
    } else {
        return false;
    }
}
}