喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: [问题] 求一正则  
 
太虚幻境 (虫子)
金牌会员
Rank: 6Rank: 6
幻境中的一只虫


UID 78355
精华 0
积分 2097
帖子 257
金钱 2091 喜悦币
威望 0
人脉 6
阅读权限 70
注册 2006-8-15
状态 离线
[广告]: q m
求一正则

//对日期格式进行验证 要求为2000-2099年  格式为 yyyy-mm-dd 并且可以正常转换成正确的日期
    var pat_hd=/^20\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;

现在我想要这个格式的,只是时间范围改为1900-2099,这个正则怎么改
2007-1-30 11:42 AM#1
查看资料  Blog  发短消息  顶部
 
独孤客
注册会员
Rank: 2


UID 76714
精华 0
积分 101
帖子 100
金钱 101 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-7-19
状态 离线
[推荐阅读] 如何使用传过来的变量作为document中的一个定义名
你上面这个不行啊,因为他不能判断2月分的日期.还有大小月也不能判断,
不过如果修改你那个的话只需把^20(只匹配20)改为匹配19或20就行了
2007-1-30 11:55 AM#2
查看资料  发短消息  顶部
 
太虚幻境 (虫子)
金牌会员
Rank: 6Rank: 6
幻境中的一只虫


UID 78355
精华 0
积分 2097
帖子 257
金钱 2091 喜悦币
威望 0
人脉 6
阅读权限 70
注册 2006-8-15
状态 离线
[推荐阅读] 请教像论坛是如何群发短消息的
修改了一下,可以判断1900-2099了,效率低了不少
我还是想直接在正则开头写上可以匹配19和20
怎样写,谢谢了
<script language="javascript">
function isDate(oStartDate)
{
    //对日期格式进行验证 要求为2000-2099年  格式为 yyyy-mm-dd 并且可以正常转换成正确的日期
    var pat_hd22=/^19\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;//这个是我加的
    var pat_hd=/^20\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;//这个是原来的
try{
     if(!pat_hd.test(oStartDate) && !pat_hd22.test(oStartDate)){throw "日期非法!";}  //这里做了修改
  var arr_hd=oStartDate.split("-");
  var dateTmp;
  dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
  if(dateTmp.getFullYear()!=parseFloat(arr_hd[0]) || dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1 || dateTmp.getDate()!=parseFloat(arr_hd[2]))
  {
   throw "日期非法!";
  }
}
catch(ex)
{
  if(ex.description)
   {return false;}
   else
    {return false;}
}
return true;
}


</script>
2007-1-30 12:07 PM#3
查看资料  Blog  发短消息  顶部
 
独孤客
注册会员
Rank: 2


UID 76714
精华 0
积分 101
帖子 100
金钱 101 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-7-19
状态 离线
[推荐阅读] 域名停放服务入门指南
哥们真牛...你换个别的不行吗非要用正则表达式...这玩意儿可是程序员头中的一个毒瘤子啊...一碰头就疼

建议你换成js的date对象处理.具体你再查查手册,我做了个老报错
2007-1-30 12:22 PM#4
查看资料  发短消息  顶部
 
era
高级会员
Rank: 4


UID 84851
精华 0
积分 567
帖子 749
金钱 567 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2006-12-15
状态 离线
[推荐阅读] div+css布局入门1(转贴)


<script type="text/javascript">
    var t = /^(19|20)\d{2}\-(0?2\-(2[0-9]|1[0-9]|0?[1-9])|0?[13456789]\-(2[0-9]|3[01]|1[0-9]|0?[1-9])|1[012]\-(2[0-9]|3[01]|1[0-9])|0?[1-9])$/.test('1989-2-21') ? 'true' : 'false';
    alert(t);
</script>
没判断闰年

没有条件子模式,没有预查,JS的正则,也就一残废品
2007-1-30 02:21 PM#5
查看资料  发短消息  顶部
 
太虚幻境 (虫子)
金牌会员
Rank: 6Rank: 6
幻境中的一只虫


UID 78355
精华 0
积分 2097
帖子 257
金钱 2091 喜悦币
威望 0
人脉 6
阅读权限 70
注册 2006-8-15
状态 离线
[推荐阅读] 页面嵌入javascript代码,如何做,计算机不出现下面的提示
似乎可以用了。保存成 php文件,格式2000-01-01; 有问题再交流,谢谢关心
<script language="javascript">
        function FormCheck(){
                if(isDate(document.form2.sDate.value) == false){
                        alert('手动输入,请保证日期合法!');
                        document.form2.sDate.focus();
                        return false;
                }
                        return true;
        }
//验证给定的日期是否合法   ,参数格式要求:yyyy-mm-dd 可以根据情况更改正则表达式
function isDate(oStartDate)
{
    //对日期格式进行验证 要求为2000-2099年  格式为 yyyy-mm-dd 并且可以正常转换成正确的日期
    var pat_hd=/^(19|20)\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;
try{
     if(!pat_hd.test(oStartDate)){throw "日期非法!";}
  var arr_hd=oStartDate.split("-");
  var dateTmp;
  dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
  if(dateTmp.getFullYear()!=parseFloat(arr_hd[0]) || dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1 || dateTmp.getDate()!=parseFloat(arr_hd[2]))
  {
   throw "日期非法!";
  }
}
catch(ex)
{
  if(ex.description)
   {return false;}
   else
    {return false;}
}
return true;
}

</script>
<form action="#" method="post" name="form2" id="form2" onSubmit="return FormCheck()"><input type="txet" name="sDate" id="sDate"><input type="submit" value="提交">
</form>
<?php
echo $_POST['sDate'];
?>
2007-1-30 04:03 PM#6
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.025872 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP