JavaScript-仅使用vanilla js的日期屏蔽
我被分配了一项任务,我只能使用普通javascript。我甚至不能直接访问html,因为他们使用某种iframe 场景 当用户模糊输入时,格式化日期 结束日期格式-月/日/年(00/00/0000) 代码应设置这些用户场景的格式。JavaScript-仅使用vanilla js的日期屏蔽,javascript,html,regex,Javascript,Html,Regex,我被分配了一项任务,我只能使用普通javascript。我甚至不能直接访问html,因为他们使用某种iframe 场景 当用户模糊输入时,格式化日期 结束日期格式-月/日/年(00/00/0000) 代码应设置这些用户场景的格式。 如果用户使用“-”分隔日期,则将“-”替换为“/”(我有) 如果用户忘记将日期或月份的“0”放在第9个月或第9天之前,则在日期或月份或两者之前自动添加一个“0”(例如:1999年9月9日至1999年9月9日) 如果用户仅为年份输入2位数字,则代码应假定其为2000年,
函数执行(){
var new_date=document.getElementById('date_val').value;
var j=格式(新日期);
document.getElementById('date_val')。value=j;
}
函数格式(输入日期){
var d=新日期(传入日期);
console.log('新日期',d)
day=d.getDate();
月=d.getMonth()+1;
year=d.getFullYear();
返回(字符串(月)。长度==1?'0'+月:月)+'/'+(字符串(日)。长度==1?'0'+日:日)+'/'+年;
};代码>
文件
日期:
您可以使用Javascript,它将解决您的主要0
问题,以及-
问题,如果给出一个缩写年份,它将用20
填充日期
var d=新日期('9/3/1999');
var f=新日期('1-1-2005');
var g=新日期('8/8/08');
函数格式化日期(d){
day=d.getDate();
月=d.getMonth()+1;
year=d.getFullYear();
返回(字符串(月)。长度==1?'0'+月:月)+'/'+(字符串(日)。长度==1?'0'+日:日)+'/'+年;
}
console.log(formattate(d));
console.log(formattate(f));
console.log(formattate(g))
document.getElementById(“日期”)onblur=function(){/*这是您的函数*/}
-使用简单搜索查找其余部分,就像我查找重复项一样,如果您不想使用日期函数,只需在更改为“/”var s1=new_Date.split(“/”)后使用此代码即可;s1[0]=s1[0]嘿,谢谢你的回答,我根据你的建议更改了我的原始代码,效果很好。一个小错误是当我输入01011991时,它的名称是“nan”,而010191的名称是01/01/10191。我喜欢使用你的日期函数,看起来更简单。他们的解决方案是否可以快速格式化上述bug?。我正在检查now@AnuRajan如果数字中没有分隔符,就几乎不可能给出日期的单一可能结果。例如,010191应该是0/1/0191或01/01/91,等等。@chrisz m kool。谢谢