<script language=javascript>
String.prototype.isDate = function()
{
   var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
   if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); 
   return(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
alert("2002-01-31".isDate());
alert("2002-01-41".isDate());
</script>

解决方案 »

  1.   

    有调用的例子吗,梅老大?俺刚接触js。希望梅老大给个简单的例子:在文本框内输入一个日期,当鼠标离开这个文本框时就进行校验,如果非法就给出提示,并把文本框清空。一般的js函数俺知道用onBlur调用就可以了。可梅老大的:String.prototype.isDate = function(),这种写法就把俺弄糊涂不知道该咋调用了。希望梅花雪给个简单的调用例子帮帮小弟。谢谢啦!
      

  2.   

    这写法是给string类型增加一个isDate()方法,你要是看着难受把它改成面向过程的写法也简单嘛。核心就是正则表达式。“鼠标离开”,是onBlur?
      

  3.   

    superliufa(PXPE) 
    -----------------------------
    是的,是鼠标离开。onBlur
      

  4.   

    还是不知道咋改成面向过程的写法。
    superliufa(PXPE) 能否帮忙写一下?俺对js不熟悉。谢谢!
      

  5.   

    function checkDate(arg){
    var r = arg.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
       if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); 
       return(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
    }
      

  6.   

    onBlur不是“鼠标离开”,是失去输入焦点。也就是说,tab也会引发。你大概是有做焦点跟随鼠标,所以以为是一回事。