java中的日期验证正则表达式

java中的日期验证正则表达式
java中的日期验证正则表达式

public static void main(String[] args)

{

String checkValue = "20000431112230";

String year = checkValue.substring(0, 4); // 获取年份

String month = checkValue.substring(4, 6); // 获取月份

Boolean isLeap = leapYear(Integer.parseInt(year)); // 判断闰年

System.out.println(isLeap);

StringBuffer eL= new StringBuffer();

String longMonth = "01030507081012"; // 31天的月份

String fix = "([2][0-3]|[0-1][0-9]|[1-9])[0-5][0-9]([0-5][0-9]|[6][0])";

if(isLeap && month.equals("02")){ // 针对2月份的情况【闰年】eL.append("\\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-9] |[0][1-9]|[1-9])"+fix);

}else if(!isLeap && month.equals("02")){ // 针对2月份的情况【非闰年】

eL.append("\\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-8] |[0][1-9]|[1-9])"+fix);

}else if(longMonth.contains(month)){ // 31天月份

eL.append("\\d{4}([1][0-2]|[0][0-9])([3][0-1]|[1-2][0-9] |[0][1-9]|[1-9])"+fix);

}else{ // 30天月份

eL.append("\\d{4}([1][0-2]|[0][0-9])([3][0]|[1-2][0-9]|[ 0][1-9]|[1-9])"+fix);

}

Pattern p = https://www.360docs.net/doc/ad13039491.html,pile(eL.toString());

Matcher m = p.matcher(checkValue);

boolean flag = m.matches();

if(flag )

{

System.out.println("格式正确");

}

else

{

System.out.println("格式错误");

}

}

public static boolean leapYear(int year) {

Boolean isLeap = false;

if(((year % 100== 0) && (year % 400== 0))

|| ((year % 100!= 0) && (year % 4== 0)))

isLeap = true;

return isLeap;

}

JS正则表达式大全

JS正则表达式大全 JS正则表达式大全【1】 正则表达式中的特殊字符【留着以后查用】字符含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" $ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A" * 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa + 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa ? 匹配前面元字符0次或1次,/ba*/将匹配b,ba (x) 匹配x保存x在名为$1...$9的变量中 x|y 匹配x或y {n} 精确匹配n次 {n,} 匹配n次以上 {n,m} 匹配n-m次 [xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符) [^xyz] 不匹配这个集合中的任何一个字符 [\b] 匹配一个退格符 \b 匹配一个单词的边界 \B 匹配一个单词的非边界 \cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M \d 匹配一个字数字符,/\d/ = /[0-9]/ \D 匹配一个非字数字符,/\D/ = /[^0-9]/ \n 匹配一个换行符 \r 匹配一个回车符 \s 匹配一个空白字符,包括\n,\r,\f,\t,\v等 \S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/ \t 匹配一个制表符 \v 匹配一个重直制表符 \w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配

表单验证和正则表达式

正则表达式和表单验证 主要内容 ?什么是表单的验证 ?表单的操作 ?表单的验证 ?正则表达式的定义 ?正则表达式验证 (一)什么是表单的验证 表单的验证 在JavaScript之前,所有的验证都是发生在服务器上,增加了反应 时间 使用JavaScript验证,则在数据提交到服务器端之前进行一系列的 判断,比如数据不全或无效则取消提交,同时再提示重新输入. 表单的验证一般有两种形式 一个是在button按钮的onclick事件上完成,如果返回false则取消 提交 在提交按钮的onsubmit事件完成,如果返回false,表单不提交 常见的验证 文本框是否为空? 选择型的表单是否选择? 用户输入的邮件地址是否合法? 用户是否已输入合法的日期? (二)表单的操作 引用表单域 根据表单的名字获取表单的引用 var myForm = doucument.forms[“name”];

根据表单数组获取 var myForm = document.forms[0]; 表单中的属性 表单中的方法 表单中的事件 表单域中的通用属性 disabled属性 name属性:name的属性值是可以通过JavaScript改变 form属性:通过form属性可以获得一个表单域所在的表单 表单域中的通用方法 ?focus()方法 ?blur()方法

表单域中的通用事件 onfocus和onblur事件 onclick、onkeydown、onkeyup和onkeypress事件 onmouseover、onmouseout、onmousedown、和onmouseup事件 onchange事件 使用文本域 获取和设置文本域的值 使用select方法选中文本 使用按钮类表单域 简单按钮:最常用的方法捕获onclick事件,然后执行代码 复选按纽:通过checked属性获取,选中时是true,否则为false. 单选按钮:通过checked属性获取,选中时是true,否则为false. 使用下拉列表框 获取和设置下拉列表框的值 下拉列表框的值表示被选中的option标记的value属性 获取选项的个数 select对象有一个length属性,表示选项的个数 获取当前选项的索引 select对象中使用selectedIndex属性获取当前选中的option对象的索引 获取所有选项的集合 用options属性表示所有option组成的集合,option的value代表其值,text属性 代表其中间的文本,selected属性决定该option是否被选中 为select动态添加选项 在所有的option后面添加一个新的选项 Select.options[select.length] = new Option(“optiontext”,”value”); 从select中删除一个选项 ?Select.options[1] = null; 清空一个select 替换一个选项 Select.options[0] = new Option(“optiontext”,”value”);

正则表达式

本文分十四个类别对正则表达式的意义进行了解释,这十四各类别是:字符/字符类/预定义字符类/POSIX字符类/https://www.360docs.net/doc/ad13039491.html,ng.Character类/Unicode块和类别的类/边界匹配器/Greedy数量词/Reluctant数量词/Possessive数量词/Logical运算符/Back引用/引用/特殊构造。 1.1.字符 x 字符 x。例如a表示字符a \\ 反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\\,而又带有\的都要写两次) \0n 带有八进制值 0的字符 n (0 <= n <= 7) \0nn 带有八进制值 0的字符 nn (0 <= n <= 7) \0mnn 带有八进制值 0的字符 mnn(0 <= m <= 3、0 <= n <= 7) \xhh 带有十六进制值 0x的字符 hh \uhhhh 带有十六进制值 0x的字符 hhhh \t 制表符 ('\u0009') \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') \f 换页符 ('\u000C') \a 报警 (bell) 符 ('\u0007') \e 转义符 ('\u001B') \cx 对应于 x 的控制符 1.2.字符类 [abc] a、b或 c(简单类)。例如[egd]表示包含有字符e、g或d。 [^abc] 任何字符,除了 a、b或 c(否定)。例如[^egd]表示不包含字符e、g或d。 [a-zA-Z] a到 z或 A到 Z,两头的字母包括在内(范围) [a-d[m-p]] a到 d或 m到 p:[a-dm-p](并集) [a-z&&[def]] d、e或 f(交集) [a-z&&[^bc]] a到 z,除了 b和 c:[ad-z](减去) [a-z&&[^m-p]] a到 z,而非 m到 p:[a-lq-z](减去) 1.3.预定义字符类(注意反斜杠要写两次,例如\d写为\\d) . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s] \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w] 1.4.POSIX 字符类(仅 US-ASCII)(注意反斜杠要写两次,例如\p{Lower}写为\\p{Lower})

正则表达式写的form表单验证

希望能帮助更多的人,可以加我qq交流504781715 formzzbds.html