使用jquery进行月和日的字段验证

时间:2013-01-11 17:15:46

标签: jquery regex

我正在使用http://www.mathachew.com/sandbox/jquery-autotab/中找到的插件 (请看看它以了解我在说什么)。

在达到maxlength后从输入改变焦点..并且还要验证输入 所以我在这里有这一行:

$("#day").autotab_filter({format:"custom", pattern:"0[1-9]|1[0-9]|2[0-1]|3[01]"});
$("#month").autotab_filter({format:"custom", pattern:"0[1-9]|1[012]"});

似乎我的正则表达式模式是错误的或什么的!我尝试了所有可能的组合。请帮忙!

这是一个示例http://jsfiddle.net/DAsRR/

2 个答案:

答案 0 :(得分:2)

你的#day模式:

0[1-9]|1[0-1]|2[0-1]|3[01]

允许01-09,10,11,20,21,30和31的号码。我认为您正在寻找:

0[1-9]|1[0-9]|2[0-9]|3[01]

你的#month模式对我来说很好。

答案 1 :(得分:0)

我找到了答案的人......如果将来有人需要它: 我必须指定01到31之间的数字对应,因为这是将被删除的模式,而不是保留! 所以要指定除01到31范围之外的所有数字,这是正确的模式:

[^0-9]|00|^[3][2-9]$|^[4-9]

解释:[^0-9]除了数字之外不会有任何字符!从0到9
00,不是有效的日期号码!
^[3][2-9]$适用于以3开头且以2到9之间的数字结尾的所有数字 35,虽然不是有效的日期号码!
^[4-9]适用于以4到9开头的数字 任何其他关于这个问题的问题我很乐意回答它