如何在javascript中为输入字段编写mm/dd/yyyy日期格式?

如何在javascript中为输入字段编写mm/dd/yyyy日期格式?,javascript,angularjs,date,Javascript,Angularjs,Date,我必须用javascript或angular在输入文本框中格式化日期,我的代码中面临一个问题 HTML: 如果我键入6month而不是06,它必须自动更改为06,在这里我面临一个问题,当我键入两个字母时,正斜杠将出现,而退格不起作用。所以任何人都请帮助我 如有任何帮助,我们将不胜感激。在变更事件中相应地变更 Regex_replace('0' + Replace([Starting Date], '/', '/0'), '0*(\d\d)/0*(\d\d)/0*(\d\d)', '20$3-$1

我必须用javascript或angular在输入文本框中格式化日期,我的代码中面临一个问题

HTML:

如果我键入6month而不是06,它必须自动更改为06,在这里我面临一个问题,当我键入两个字母时,正斜杠将出现,而退格不起作用。所以任何人都请帮助我


如有任何帮助,我们将不胜感激。

在变更事件中相应地变更

Regex_replace('0' + Replace([Starting Date], '/', '/0'), '0*(\d\d)/0*(\d\d)/0*(\d\d)', '20$3-$1-$2')
我知道这不是你要找的格式,而是打字脚本。但我想你在找这样的东西

试试下面的方法:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
          app.controller('appCtrl', ['$scope', function($scope){
              vm=$scope;
               vm.change = function (e) {
    if (vm.dob) {
        var dobLen = vm.dob.length;
        if (dobLen === 2 || dobLen === 5)
            vm.dob = vm.dob + "/";
    }
};
          }]);
</script>
HTML:

这对我来说很有吸引力。

模式属性和一些onchange格式的混合可以解决这一问题:

var inp=document.body.appendChilddocument.createElementinput; inp.pattern=\\d\\d/\\d\\d/\\d\\d; inp.placeholder=年/月/日; inp.required=true; 函数formatDateevt{ var=inp 价值 .toString.split/ mapfunctiona先生{ 如果a.length==1{ 返回0+a; } 返回a; } .join/; if/\d\d\/\d\d\/\d\d/.testval{ inp.value=val; } }
inp.onchange=格式日期;这里的vm是什么?是范围吗?@lalithkumar是的,它是范围变量,如var vm=this。您可能可以在blur上进行日期检查,而不是在change中进行检查。通过这种方式,可以对整个字符串使用Date.parse,然后使用角度过滤器格式化date@Phugo请你解释一下,如何使用ng blur?这是什么?你能解释一下吗?@AWE抱歉,我不明白。这是记住接受答案(如果合适的话)@pbsbr这对格式化和/或验证完全不起作用。
Regex_replace('0' + Replace([Starting Date], '/', '/0'), '0*(\d\d)/0*(\d\d)/0*(\d\d)', '20$3-$1-$2')
public static getDateForm_german(date: Date): string {
    let filter = {
        year: 'numeric',
        month: '2-digit',
        day: '2-digit'
    };
    return date.toLocaleString('de-DE', filter);  
    // returns like 30.02.1999 for 1999-02-30
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
          app.controller('appCtrl', ['$scope', function($scope){
              vm=$scope;
               vm.change = function (e) {
    if (vm.dob) {
        var dobLen = vm.dob.length;
        if (dobLen === 2 || dobLen === 5)
            vm.dob = vm.dob + "/";
    }
};
          }]);
</script>
<div ng-app="myApp" ng-controller="appCtrl">
        <input  type="text" class="form-control" name="dateOfBirth" ng-model="dob" placeholder="Birthday(MM/DD/YYYY)" ng-required="true" ng-change="change()" maxlength="10" ng-maxlength="10" dob-format>
     </div>