Html 输入带斜杠的格式化日期文本

Html 输入带斜杠的格式化日期文本,html,Html,如何将输入类型“文本”屏蔽为日期? 我希望它的格式为dd-mm-yyyy,并且它将在您到达正确位置时添加斜杠,因此如果我键入30111970,它将自动在相应位置插入斜杠(当您键入时): 我目前正在使用模式,但我不知道如何添加斜杠。这是我的dd-mm-yyyy格式模式: (0[1-9]|1[0-9]|2[0-9]|3[01]).(0[1-9]|1[012]).[0-9]{4} 使用HTML5,您只需使用日期输入类型: <input type="date" name="somename" i

如何将输入类型“文本”屏蔽为日期? 我希望它的格式为
dd-mm-yyyy
,并且它将在您到达正确位置时添加斜杠,因此如果我键入30111970,它将自动在相应位置插入斜杠(当您键入时):

我目前正在使用模式,但我不知道如何添加斜杠。这是我的
dd-mm-yyyy
格式模式:

(0[1-9]|1[0-9]|2[0-9]|3[01]).(0[1-9]|1[012]).[0-9]{4}

使用HTML5,您只需使用日期输入类型:

<input type="date" name="somename" id="someid">

或者,如果需要手动输入,您可以尝试以下操作,您必须执行向上键功能:

<input
    type="text"
    name="date"
    placeholder="dd/mm/yyyy"
    onkeyup="
        var v = this.value;
        var regex=/^[a-zA-Z]+$/;
        if (!v.match(regex))
        {
             alert('Must input date or number');
             return false;
        }
        if (v.match(/^\d{2}$/) !== null) {
            this.value = v + '/';
        } else if (v.match(/^\d{2}\/\d{2}$/) !== null) {
            this.value = v + '/';
       }"
    maxlength="10"
>


使用input type=“date”有什么问题?你不能更改格式我知道,但你不能设置输入类型date的格式,我希望它是dd-mm-yyyy,当你使用date时,它会根据浏览的内容设置格式,这几乎是完美的,但我如何将其与我的模式结合起来?或者至少,如何只允许数字,所以如果我尝试输入字符,它将不会显示。您也可以验证字符。我再次更新了我的答案。我正在后端进行验证,但我也想要一个好的UI。顺便说一句,我想你的意思是如果
if(v.match(regex))
没有
。虽然这段代码破坏了脚本,但没关系,还有一件事:在你写了一次日期之后,所以你不能更改它,因为斜杠不会再出现
<input
    type="text"
    name="date"
    placeholder="dd/mm/yyyy"
    onkeyup="
        var v = this.value;
        var regex=/^[a-zA-Z]+$/;
        if (!v.match(regex))
        {
             alert('Must input date or number');
             return false;
        }
        if (v.match(/^\d{2}$/) !== null) {
            this.value = v + '/';
        } else if (v.match(/^\d{2}\/\d{2}$/) !== null) {
            this.value = v + '/';
       }"
    maxlength="10"
>