我需要检查日期是否有效且不是数字或类似的东西:
function isDate(date) {
return (new Date(date) != "Invalid Date") && !isNaN(new Date(date)) && !angular.isNumber(parseInt(date));
}
如果date
是数字,则此方法可行,但如果date
为datetime
,则会因为angular.isNumber(parseInt(date)
为真而导致错误
例如,如果此方法需要"1989-02-20T22:00:00Z"
,则true
如果"6666"
则返回false
,然后class Test:
def __init__(self):
self.var = 1
otherVar = 2
def myPrinter(self):
print self.__dict__ # Prints {'var': 1}
print self.var
print self.otherVar # Doubt !!
print self.__dict__ # Prints {'var': 1}
ob = Test()
ob.myPrinter()
答案 0 :(得分:0)
我通过以下方式解决了这个问题:
function isValidDate(date) {
var regexp = new RegExp("(19|20)[0-9][0-9]-(0[0-9]|1[0-2])-(0[1-9]|([12][0-9]|3[01]))T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]");
return regexp.exec(date);
}
答案 1 :(得分:0)
不需要&& !angular.isNumber(parseInt(date))
部分,如果parseInt(date)
返回NaN
,则会给出错误的结果。
您可以使用以下内容:
function isDate(date) {
return (new Date(date) != "Invalid Date") && !isNaN(new Date(date));
}
这会给你预期的结果,这里有一些测试:
isDate("1989-02-20T22:00:00Z");
true
isDate("1989-02-20T22:00:Z");
false
isDate("1989-02-20T00:00Z");
true
isDate("1989-02-20E00:00Z");
false