验证dd-MM-yyyy日期格式的正则表达式
<script language="javascript" type="text/javascript">function checkDate() {
var reg = /^(\d{2})([-])(\d{2})([-])(\d{4})/;
if (!reg.test(window.event.srcElement.value) && window.event.srcElement.value != "") {
document.getElementById(window.event.srcElement.id).focus();
alert( "日期格式不正确!\n正确格式为:01-08-2012");
return false;
}
类似这样的,怎么样能验证日期呢. --------------------编程问答-------------------- 你的效果不是已经实现了吗?你想问的是什么? --------------------编程问答--------------------
--------------------编程问答-------------------- 日和月份没验证. --------------------编程问答--------------------
function checkDate() {
var reg = /^(\d{2})([-])(\d{2})([-])(\d{4})/;
varsrcevalue= "2012-1-1";
if (srcevalue !=null&& !reg.test(srcevalue)) {
document.getElementById(srceid).focus();
alert( "日期格式不正确!\n正确格式为:01-08-2012");
return false;
}
var reg = /^\d{2}[-]\d{2}[-]\d{4}$/gi;--------------------编程问答--------------------
var reg = /^\d{2}[-]\d{2}[-]\d{4}$/gi;--------------------编程问答-------------------- 这种最好不用正则,太慢了,两种方法会比较快:
1.date.parse/date.tryparse检查是否合法,缺点是不知道哪部分不合法
2.用你原来的正则验证,然后取出日、月等部分,用byte.Tryparse转换,再看看是否合法,这样还可以检查闰年、闰月、大小月。 --------------------编程问答-------------------- if(Regex.IsMatch(start.Text,@ "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$ "))
yyyy-MM-dd --------------------编程问答-------------------- \d{1,2}-\d{1,2}-\d{4} --------------------编程问答-------------------- 还有没有其他方法呢 --------------------编程问答-------------------- 有没有dd-mm-yyyy这种的日期正则表达式呢 --------------------编程问答-------------------- My97DatePicker 推荐日期插件
/////////////////////////////////////
var reg = /^\d{2}[-]\d{2}[-]\d{4}$/gi;
这个就是正则 --------------------编程问答-------------------- 参考我的博客
[url=http://blog.csdn.net/lxcnn/article/details/4362500]正则应用之——日期正则表达式[\url] --------------------编程问答-------------------- 参考我的博客
正则应用之——日期正则表达式 --------------------编程问答--------------------
如果是dd-mm-yyyy这种的日期正则表达式,你的那里要怎么样改呢. --------------------编程问答--------------------
4.2 其它形式扩展里已经经了,把不需要的其它连字符去掉就是了
^(?:(?:(?:0[1-9]|1[0-9]|2[0-8])-(?:0[1-9]|1[0-2])|(?:29|30)-(?:0[13-9]|1[0-2])|31-(?:0[13578]|1[02]))-(?!0000)[0-9]{4}|29-02-(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00))$--------------------编程问答-------------------- 好象不行,如:10-20-2012 日-月-年的格式不行. --------------------编程问答-------------------- dd-mm-yyyy 如:10-20-2012这样的就验证不了. --------------------编程问答-------------------- 正则:
--------------------编程问答--------------------
1、
/^(?:[0-9]|[0][1-9]|[1-2]\d|3[0-1])-(?:[1-9]|0[1-9]|[1][0-2])-(?:\d{4})$/
判断了格式为dd-mm-yyyy、d-m-yyyy、dd-m-yyyy、d-mm-yyyy符合要求,这里面判断了日期为1-31 月份为1-12 年只判断了4位数字
2、如果楼主严格要求的格式为dd-mm-yyyy 则为
/^(?:[0][1-9]|[1-2]\d|3[0-1])-(?:0[1-9]|[1][0-2])-(?:\d{4})$/ 判断了日期为1-31 月份为1-12 年只判断了4位数字
JS代码使用 C#里面请去掉"/"
楼上的还马马乎乎,多谢. --------------------编程问答-------------------- 额 第一个貌似有点小错误 日期可以为0 应该为
--------------------编程问答-------------------- 最近在练习写正则 所以只要看到正则的帖子我就上来凑下热闹
/^(?:[1-9]|[0][1-9]|[1-2]\d|3[0-1])-(?:[1-9]|0[1-9]|[1][0-2])-(?:\d{4})$/
还有貌似?:可以拿掉
--------------------编程问答--------------------
20怎么可能是月? --------------------编程问答-------------------- 我们用的是asp.net的web开发,实验手册上的表达式是:(((0[1-9]|[12][0-9]|3[01])/((0[13578]|1[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|(0[1-9]|[1][0-9]|2[0-8])/(02))/([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}))|(29/02/(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00)))
不知道对不对
补充:.NET技术 , ASP.NET