仅包含数字和斜杠的自动格式日期

时间:2016-01-21 17:25:50

标签: jquery regex date formatting numbers

我正在尝试自动格式化显示为"MM/DD/YYYY"的日期,但只允许数字和正斜杠。

这是我到目前为止所做的一切,除了仅限于数字和斜线外,它还能完成我想要的一切:

$('#date').keydown(function (e) {
    var key = e.charCode || e.keyCode || 0;
    $date = $(this);

    if (key !== 8) {
        if ($date.val().length === 0) {
            $date.val($date.val() + '');
        }
        if ($date.val().length === 2) {
            $date.val($date.val() + '/');
        }
        if ($date.val().length === 5) {
            $date.val($date.val() + '/');
        }
    }
});

我不想添加任何插件或掩码,我只是在寻找代码来做我需要的。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

查找ascii code正斜杠是 import socket import sys import getopt import threading import subprocess buffer="lol" client_sender(buffer.encrypt('utf-8')) 。 以下解决方案仅允许使用数字字符。

47

所以将48更改为47,它也允许正斜杠。

请注意使用$('#date').on('keypress', function (ev) { var key = ev.keyCode || ev.which; // this prevents other characters but numeric if (key > 31 && (key < 48 || key > 57)) { ev.preventDefault(); } }); 事件,以便在允许任何其他键的值输入之前捕获字符(字母,数字......)的事件。就像您可以通过按住ALT +数值来键入。

这就是为什么你抓住keypress并且不允许事件在某个范围内发射ev.keyCode || ev.which

<强>进行追加

接下来要做的事情是将输入值验证为日期。 类似的东西:

key > 31 && (key < 47 || key > 57)