我希望输入符合以下格式:
[00-23]:[00-59]
我们使用angular 2.4,因此我们没有pattern
指令可用,我不能使用外部库(primeNG)。
所以我试图为此做出指示:
@HostListener('keyup', ['$event']) onKeyUp(event) {
var newVal = this.el.nativeElement.value.replace(/\D/g, '');
var rawValue = newVal;
// show default format for empty value
if(newVal.length === 0) {
newVal = '00:00';
}
// don't show colon for empty groups at the end
else if(newVal.length === 1) {
newVal = newVal.replace(/^(\d{1})/, '00:0$1');
} else {
newVal = newVal.replace(/^(\d{2})(\d{2})/, '$1:$2');
}
// set the new value
this.el.nativeElement.value = newVal;
}
这适用于我输入的前2位数字。
开始字符串:
00:00
按下小键盘1:
00:01
按下小键盘2:
00:12
但是我得到的第三个数字:
00:123
而不是01:23
和00:1234
而不是12:34
退格按预期工作。
仅使用指令是否有解决此问题的方法?
答案 0 :(得分:0)
在上一次rejex尝试replace(/^(\d{0,2})(\d{0,2})/g, '$1:$2')
。希望这会有所帮助。