如何在javascript中为输入字段编写mm/dd/yyyy日期格式?
我必须用javascript或angular在输入文本框中格式化日期,我的代码中面临一个问题 HTML: 如果我键入6month而不是06,它必须自动更改为06,在这里我面临一个问题,当我键入两个字母时,正斜杠将出现,而退格不起作用。所以任何人都请帮助我如何在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
如有任何帮助,我们将不胜感激。在变更事件中相应地变更
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>