AngularJS -信用卡过期日期格式来验证表单
AngularJS - Credit Card Expiration date format to validate form
我正在学习AngularJS,我正在制作一个信用卡验证器。我已经实现了Luhn算法在一个自定义过滤器,它的工作完美。然而,为了验证表单,我也希望到期日期是有效的,即满足这些条件:- - - 08/16- - - 02/2015- 0518-日期不得过期(明显)
所以,自从我发现在Angular中已经有了日期过滤器,我就尝试创建一个。对我来说,这似乎是合乎逻辑的,但它根本行不通。下面是代码:
/**
* validate-expiry-date Module
*
* Validates the date format and that the date is not in the past
*/
angular.module('validate-expiry-date', []).filter('validDate', [function () {
return function (date) {
var actualDate = new Date();
var m,y,d;
if (/^'d{2}'/'d{2}$/.test(date)) {
m = date.substring(0, 2);
y = 20 + date.slice(-2);
d = new Date(y,m);
return(actualDate > d);
}if (/^'d{2}'/'d{4}$/.test(date)) {
m = date.substring(0, 2);
y = date.slice(-4);
d = new Date(y,m);
return(actualDate > d);
}else if (/^'d{4}$/.test(date)) {
m = date.substring(0, 2);
y = 20 + date.slice(-2);
d = new Date(y,m);
return(actualDate > d);
};
}
}])
谁能告诉我这是怎么回事?谢谢,b . 您的过滤器函数在概念上(尽管您对月份的解释相差一个,请查阅Date
构造函数的文档)。你的问题是让它符合angular的期望。
不是接收单个日期字符串,正如您在这里所假设的那样,您实际上得到了需要过滤的完整数组。而不是返回true/false,您需要返回经过修改(过滤)的数组。
然而,你写的函数非常适合Array.prototype.filter
,所以它在我固定的这个柱塞中工作。
以下是相关的修改:
function filterSingleDate(date) {
var actualDate = new Date();
var m,y,d;
if (/^'d{2}'/'d{2}$/.test(date)) {
m = date.substring(0, 2) - 1;
y = 20 + date.slice(-2);
d = new Date(y,m);
} else if (/^'d{2}'/'d{4}$/.test(date)) {
m = date.substring(0, 2) - 1;
y = date.slice(-4);
d = new Date(y,m);
} else if (/^'d{4}$/.test(date)) {
m = date.substring(0, 2) - 1;
y = 20 + date.slice(-2);
d = new Date(y,m);
}
return actualDate > d;
}
var FilterModule = angular.module('FilterModule', []).filter('validDate', [function () {
return function (dateList) {
return dateList.filter(filterSingleDate);
};
}]);
相关文章:
- JAVASCRIPT验证表单中的日期
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 如何使用jQuery正确验证表单
- Javascript不会验证表单
- 如何使用javascript验证表单中的数据,然后调用php页面
- 包括来自另一个页面的Boostrap模态;t验证表单
- Javascript验证表单不重定向页面
- 在提交之前验证表单,jQuery发布到javaScript,然后提交到确认页面
- 引导复选框-x 选中时未正确更新 DOM - 如何验证表单
- Jquery 验证表单
- 验证表单中的 jQuery-UI 微调器
- 在 Jquery 中验证表单的输入字段
- 如何验证表单控制数据大小不超过2.5 mb
- 在表单进入Angular中的ng-submit之前验证表单
- Javascript表单验证:表单在错误返回时提交:
- 使用Angular.js验证表单输入的原始状态
- 正在复制验证表单
- 如何在转盘中逐步(3步)验证表单
- 使用javascript验证表单值
- 验证表单按id输入val