JavaScript / jQuery输入[type = text]模式

时间:2012-06-06 11:53:19

标签: javascript jquery design-patterns date input

好吧,我在表单中有一个输入,这是一个日期输入。我想让它接受基于像“XX / XX / XXXX”这样的模式的角色。目前它只接受数字和“/”。但我不希望用户输入“X / XXXX / XX”等日期或其他类型的日期,我不希望能够像“// XX / XXX / XXX”那样写错。我不知道如何在这个或jQuery上使用js,所以用户根据模式输入日期,而不是以其他方式。

3 个答案:

答案 0 :(得分:3)

便宜而简单的方法可能只是实现jQuery UI datepicker控件,以便您可以通过它控制输入格式。

它基本上可以解决问题,但可能会将实际问题排除在外。

答案 1 :(得分:1)

答案 2 :(得分:0)

使用正则表达式^(3[0-1]|[0-2]?[0-9])\/(0?[0-9]|1[0-2])\/(2[0-9]+)$

var date = "20/12/2012";

console.log(isDateOK(date));

function isDateOK(date) {
    return date.match(/^(3[0-1]|[0-2]?[0-9])\/(0?[0-9]|1[0-2])\/([1-2][0-9]{3})$/);
}

如果不匹配则返回false。此示例使用DD / MM / YYYY。如果你想要MM / DD / YYYY,请使用以下正则表达式:^(0?[0-9]|1[0-2])\/(3[0-1]|[0-2]?[0-9])\/[1-2][0-9]{3$

JSFiddle:http://jsfiddle.net/UBFeN/2/