常用java正则表达式的工具类

所属分类: 软件编程 / java 阅读数: 32
收藏 0 赞 0 分享

本文实例为大家分享了java正则表达式工具类的具体代码,供大家参考,具体内容如下

import com.google.common.base.Strings;

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

/**
 * 常用的正则表达式
 * Created by tookbra on 2016/4/7.
 */
public class RegexUtils {
  /**
   * 判断是否是正确的IP地址
   *
   * @param ip
   * @return boolean true,通过,false,没通过
   */
  public static boolean isIp(String ip) {
    if (Strings.isNullOrEmpty(ip))
      return false;
    String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
        + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
        + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
        + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
    return ip.matches(regex);
  }
  /**
   * 判断是否是正确的邮箱地址
   *
   * @param email
   * @return boolean true,通过,false,没通过
   */
  public static boolean isEmail(String email) {
    if (Strings.isNullOrEmpty(email))
      return false;
    String regex = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
    return email.matches(regex);
  }
  /**
   * 判断是否含有中文,仅适合中国汉字,不包括标点
   * @param text
   * @return boolean true,通过,false,没通过
   */
  public static boolean isChinese(String text) {
    if (Strings.isNullOrEmpty(text))
      return false;
    Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
    Matcher m = p.matcher(text);
    return m.find();
  }
  /**
   * 判断是否正整数
   *
   * @param number
   *      数字
   * @return boolean true,通过,false,没通过
   */
  public static boolean isNumber(String number) {
    if (Strings.isNullOrEmpty(number))
      return false;
    String regex = "[0-9]*";
    return number.matches(regex);
  }
  /**
   * 判断几位小数(正数)
   *
   * @param decimal
   *      数字
   * @param count
   *      小数位数
   * @return boolean true,通过,false,没通过
   */
  public static boolean isDecimal(String decimal, int count) {
    if (Strings.isNullOrEmpty(decimal))
      return false;
    String regex = "^(-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){" + count
        + "})?$";
    return decimal.matches(regex);
  }
  /**
   * 判断是否是移动手机号码
   *
   * @param phoneNumber
   *      移动手机号码
   * @return boolean true,通过,false,没通过
   */
  public static boolean isMobilePhoneNumber(String phoneNumber) {
    if (Strings.isNullOrEmpty(phoneNumber))
      return false;
    String regex = "^((13[0-9])|(15[0-9])|(18[1-9]))\\d{8}$";
    return phoneNumber.matches(regex);
  }

  /**
   * 判断是否是手机号码
   *
   * @param phoneNumber
   *      移动手机号码
   * @return boolean true,通过,false,没通过
   */
  public static boolean isPhoneNumber(String phoneNumber) {
    if (Strings.isNullOrEmpty(phoneNumber))
      return false;
    String regex = "^1\\d{10}$";
    return phoneNumber.matches(regex);
  }
  /**
   * 判断是否含有特殊字符
   *
   * @param text
   * @return boolean true,通过,false,没通过
   */
  public static boolean hasSpecialChar(String text) {
    if (Strings.isNullOrEmpty(text))
      return false;
    if (text.replaceAll("[a-z]*[A-Z]*\\d*-*_*\\s*", "").length() == 0) {
      // 如果不包含特殊字符
      return true;
    }
    return false;
  }

  private static boolean isChinese(char c) {
    Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
    if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
        || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
        || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
        || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
        || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
        || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
        || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
      return true;
    }
    return false;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多