AngularJS : isDate() returns false if passed argument is not a Date object
我只是尝试检查字符串是否是日期。 这是我在角度JS中的代码。
1 2 | var mydt="2015/07/29"; document.write(angular.isDate(mydt)); |
这总是返回false。
但实际上这是一个约会。
但是当我尝试这段代码时,
1 2 3 | var cur_date = new Date(); document.write(cur_date); document.write(angular.isDate(cur_date)); |
执行结果是,
2015年7月29日星期三15:15:13 GMT + 0530(斯里兰卡标准时间)
真正
我想知道为什么我们不能以简单的方式检查简单的日期格式,如"yyyy / mm / dd"。
AngularJS的函数源
1 2 3 | function isDate(value) { return toString.call(value) === '[object Date]'; } |
这就是为什么angular.isDate在Date对象上返回true,但在字符串上返回false。
1 2 3 4 | var d = new Date('7/29/2015'); alert(angular.isDate(d)); // Alerts true on the date object alert(d.toString()); // Alerts the string value of the date object alert(angular.isDate(d.toString())); // Alerts false on the string value |
的jsfiddle
您可以使用Date.parse():
检查字符串是否为日期值
1 2 3 4 | function isValidDate(dateString) { var regEx = /^\d{4}-\d{2}-\d{2}$/; return dateString.match(regEx) != null; } |
检查字符串是否包含数字4-2,2