Javascript 设置用户键入值时的日期格式
关于日期的小问题。 我正在尝试设置用户键入值时的日期格式。因此,如果有人键入,例如2017,输入自动完成/(斜杠),然后用户填写月份和日期。 目前我有这段代码,但没有按预期工作。我的意思是,日期的格式必须是:YYYY/MM/DDJavascript 设置用户键入值时的日期格式,javascript,regex,date,replace,format,Javascript,Regex,Date,Replace,Format,关于日期的小问题。 我正在尝试设置用户键入值时的日期格式。因此,如果有人键入,例如2017,输入自动完成/(斜杠),然后用户填写月份和日期。 目前我有这段代码,但没有按预期工作。我的意思是,日期的格式必须是:YYYY/MM/DD $('input[name*=expire]').bind('keyup', function() { // Instance vars. var $this = $(this), value = $this.val(); // C
$('input[name*=expire]').bind('keyup', function() {
// Instance vars.
var $this = $(this),
value = $this.val();
// Clear value to inter number.
value = value.replace(/\D/g,"");
value = value.replace(/(\d{4})/,"$1");
value = value.replace(/(\d{2})(\d)/,"$1/$2");
value = value.replace(/(\d{2})(\d)$/,"$1/$2");
// Set interval to map click action.
setTimeout(function () {
$this.val(value);
}, 1);
});
使用此代码时,出于某种原因,返回的是11/11111/1
,而不是1111/11/11
提前感谢。请注意,在用户输入时更改输入值会移动光标,从而使编辑现有值变得困难。无论如何,看起来您的第一个
.replace()
根本不起任何作用,因为替换字符串是匹配字符串的精确副本。第二个.replace()。第三个.replace()
匹配字符串末尾的三个数字,并在最后一个数字前插入一个/
。这种自动格式化非常难正确。您可能最终会得到大量代码和笨重的UI,而没有任何好处。只需让用户键入一些内容并显示非阻塞消息,以告知是否有错误。Willian,您提到了YYYY/MM/DD
格式,但为什么您只在正则表达式中使用\d{2}
?我以为你是在YY/MM/DD
format?我已经删除了我的答案,因为我不确定你需要什么。然而,pattern=“\d{4}/\d{2}/\d{2}”
似乎是最好的解决方法。