2012-02-16 2 views
0

이것은 asp.net 유효성 검사 제어를위한 클라이언트 스크립트 기능입니다.자바 스크립트에서 날짜 유효성 검사

<script type="text/javascript"> 
    function validateDateControl(sender, args) { 

     var d = new Date(args.Value); 

     args.IsValid = (Object.prototype.toString.call(d) === "[object Date]"); 

     if (!args.IsValid) { 
      sender.innerText = "Client: Invalid date"; 
     }  

     return args.IsValid; 
    } 
</script> 

Immediate Window Results: 
d 
NaN 
Object.prototype.toString.call(d) === "[object Date]" 
true 

왜 비교 평가가 참입니까?

+0

질문에 답할 수 없습니다. 자세한 내용을 게시하십시오. 죄송합니다 :) – AngeloBad

+3

잘못된 날짜가 여전히 날짜 개체입니다, 그냥 제대로 표현할 수 없습니다. –

답변

8

new Date('as;dlas;ld,as;dl,as')은 여전히 ​​Date입니다. 그것의 문자열 표현에 표시되는 내용 Date 형의 객체하지만 값이 (이기 때문에

function validateDateControl(sender, args) { 

    var d = new Date(args.Value); 

    args.IsValid = !isNaN(d.getTime()); 

    if (!args.IsValid) { 
     sender.innerText = "Client: Invalid date"; 
    }  

    return args.IsValid; 
} 
0

:

> var d = new Date('as;dlas;ld,as;dl,as') 
    undefined 
> d.toString() 
    "Invalid Date" 
> Object.prototype.toString.call(d) 
    "[object Date]" 

날짜의 유효성을 확인하는 더 좋은 방법은 Date.getTime()NaN를 반환하지 않는 것을 보는 것입니다 형식이 아닌 개체 자체)이 잘못되었습니다.

관련 문제