Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-仅使用vanilla js的日期屏蔽_Javascript_Html_Regex - Fatal编程技术网

JavaScript-仅使用vanilla js的日期屏蔽

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年,

我被分配了一项任务,我只能使用普通javascript。我甚至不能直接访问html,因为他们使用某种iframe

场景

当用户模糊输入时,格式化日期 结束日期格式-月/日/年(00/00/0000)

代码应设置这些用户场景的格式。

  • 如果用户使用“-”分隔日期,则将“-”替换为“/”(我有)

  • 如果用户忘记将日期或月份的“0”放在第9个月或第9天之前,则在日期或月份或两者之前自动添加一个“0”(例如:1999年9月9日至1999年9月9日)

  • 如果用户仅为年份输入2位数字,则代码应假定其为2000年,并在年份前添加20位(例如:2015年9月9日至2015年9月9日)

  • 如何仅使用js结构和vanilla js实现2、3?记住,我不能编辑HTML,所以不能像value=“this.value”或moment js等那样做

    函数执行(){
    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。谢谢