求一js正则表达式验证YYYY/MM/DD格式日期。
/^\d{4}\-\d{2}\-\d{2}$/
这里只是限制了格式必须是yyyy-mm-dd ,如果想做的年月日校验很精准,那比较麻烦!
呵呵,你的问题有点特殊,还要带小时。不过也可以做。已经作好了。代码如下。保存为html文件。直接点击运行即可。
用正则表达式对日期字符串进行验证:
说明:
1:日期格式为,如:2008/8/8 12或是2008/08/08 23都是正确的。
2:可以对0000~9999年中的任一天的日期进行合法性验证。
3:对于闰年时2月有29号此种情况也进行有效验证。
4:举例不合格日期,1984/1/32 25 和 1984/04/31 25 和 2001/02/29 25
//验证日期的格式为****/**/** **,
//已经考虑到了闰年的问题,如2001/2/29是不允许的。而2008/2/29则是可以的。
//入口参数:日期字符串;
//出口参数:true|false
function verify_date(date_str)
{
var myReg=new RegExp("^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29))) (0?\\d|1\\d|2[0-3]))$");
return myReg.test(date_str);
}
代码如下:
/*日期验证dd/mm/yyyy*/
functionisDate(str){
vardate=str;
varresult=date.match(/^([0]?[1-9]|[1|2][0-9]|[3][0|1])[/]([0]?[1-9]|[1][0-2])[/]([0-9]{4}|[0-9]{2})$/);
if(result==null)
returnfalse;
vard=newDate(result[3],result[2]-1,result[1]);
return(d.getFullYear()==result[3]&&(d.getMonth()+1)==result[2]&&d.getDate()==result[1]);
}
扩展资料
java用正则表达式判断输入的日期格式为yyyy/MM/dd
publicstaticvoidmain(String[]args)throwsParseException{
Stringstr1="2012-05-15";
Stringstr2="2012/05/15";
if(zzbd(str1)){
System.out.println("str1havematch!");
}else{System.out.println("str1don'tmatch!");}
if(zzbd(str2)){
System.out.println("str2havematch!");
}else{System.out.println("str2don'tmatch!");}}
publicstaticbooleanzzbd(Strings)
{
Patternpattern=Pattern.compile(\\d{4}/\\d{2}/\\d{2});
Matchermatcher=pattern.matcher(s);
if(matcher.find())
{
returntrue;
}else{
returnfalse;
}
}
}
来说,条件越多的正则表达式越严格,但表述起来也越麻烦,你可以根据需要选择不同的正则表达式去判别
只检查格式: \d{4}-\d{2}(-\d{2})?
简单的日期判定(比如说2000-02-30仍然通过判定): \d{4}-(((0[1-9])|(1[0-2])))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?
比较严格的日期判定(但还是没有闰年2月29的判定): \d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|([1-2][0-9])))?)
严格的日期判定(包括闰年的判定): (\d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|(1[0-9])|(2[0-8])))?))|(((([0-9]{2})((0[48])|([2468][048])|([13579][26]))|(((0[48])|([2468][048])|([3579][26]))00)))-02-29)
/^[1-9]\d{3}\/(0[1-9]|1[0-2])\/(0[1-9]|[1,2][0-9]|3[0,1])$/
此正则表达式限制了月份为1到12月,日期为1到31日
^[12]\d{3}/(?:0[1-9]|1[0-2])/(?:0[1-9]|[12][0-9]|30|31)$
匹配1000/01/01到2999/12/31日之间的日期,具体规则如下:
1、年是4个数字,月、日是2个数字。
2、年必须在[1000,2999]内;月必须在[1-12]内,1-9月前须加0,如01;日必须在[1-31]内,1-9日前须加0,如09;
3、年、月后面必须跟/
以为判断2月天数挺麻烦,干脆都改为1-31日
var pre=new RegExp('[1-2][0-9]{3}\/[0|1]+[1-9]+\/[0-3]+[1-9]+');
var s=pre.test('2016/01/0');
console.log(s);
返回true或者false
求一个js和php正则表达式
答:s=s.replace(/(.*?)<\/div>/gi,'$1');alert('JS输出:\n'+s);//document.write('JS输出:\n'+s); <?php s='<DIV class="xxx">abc1</DIV> <DIV class="xxx">abc2</DIV> <DIV class="xxx">abc3</DIV>';s=preg_replace('/(.*?)<\/div>/i','$1',$s);echo 'PH...
js中正则表达式语法KPI(年统计|2011-04-15 18:49:04|qqq|www|eee|rrr|...
答:var $1 = arguments[1],$2 = arguments[2],$3 = arguments[3];;//$1第一个捕获组,$2第二个捕获组,如只想取前三个字符返回 return $1.match(/\w{3}/) + $2 + $3.match(/\w{3}/)});alert(temp);
正则表达式 两头一样中间不一样该怎么批量替换求解
答:用正向预查找,(?<=xxx)这里是你要的替换的部分(?<=yyy),我写的如果不对你可以搜一下这个概念,这个概念的意思是匹配两边符合xxx和yyy结构的中间那部分,两边部分不取值,只取中间部分
求一个大于0 小于100 的浮点数正则表达式?
答:匹配三种格式的数:0.xxxxxx (xxx中存在至少一个非0的数字) 或者 x.yyyy (x为非0的数字,y为数字,.yyy可有可无) 或者 xy.yyy(x为非0的数字,y为数字,.yyy可有可无)ps:这个正则相对更严格,00.10,01.234 ,06等也会被认为是不匹配的 ...
怎样用正则表达式匹配IP地址与域名
答:匹配完整域名的正则表达式:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?一个IP字串,由四段组成,每一段是0~255的数字,段与段之间用小数点隔开,比如61.139.2.69就是一个合法的IP字串。如果正则表达式写成\d{1,3}(\.\d{1,3}){3}无疑是...
JSP如何防范SQL注入攻击
答:SQL注入攻击的总体思路:发现SQL注入位置;判断服务器类型和后台数据库类型;确定可执行情况对于有些攻击者而言,一般会采取sql注入法。下面我也谈一下自己关于sql注入法的感悟。注入法:从理论上说,认证网页中会有型如:select * from admin where username='XXX' and password='YYY' 的语句,若在...
正则表达式如何提取html标签里面的内容
答:只提取rufus,jenny?不行吧。没有规律啊。是把所有的标签内内容提取了吧。如果是提取标签内的话这么写: Pattern pattern = Pattern.compile(">([^<]+)<"); Matcher macher = pattern.matcher("RufusDan, Jenny! Over here! JennyHey, dad! RufusHey, hey! You made it. Welcome back!
如何防止sql注入
答:注入法:从理论上说,认证网页中会有型如:select * from admin where username=‘XXX‘ and password=‘YYY‘ 的语句,若在正式运行此句之前,如果没有进行必要的字符过滤,则很容易实施SQL注入。如在用户名文本框内输入:abc’ or 1=1-- 在密码框内输入:123 则SQL语句变成:select * ...