我试图创建蒙面文本框,您可以在最长24:00输入,但我无法使正则表达式相互依赖。现在我可以输入ex。 25:00。如果第一个字符是2,我只需要输入< 5.有人可以帮忙吗?
$(".hoursBox").kendoMaskedTextBox({
mask: "12:34",
rules: {
"1": /[0-2]/,
"2": /[0-9]/,
"3": /[0-5]/,
"4": /[0-9]/
}
});
答案 0 :(得分:1)
您可以使用以下正则表达式
((?!00)[0-1][0-9]|2[1-4]):[0-5][0-9]
工作原理
[0-1]
。[0-9]
。(?!00)
。:
)。 [0-5]
中的任何一个。[0-9]
中的任何一个。您可以看到它与here的匹配方式。
答案 1 :(得分:0)
我做到了。
<kendo-maskedtextbox
[includeLiterals]="true"
[formControl]="formGroup.get('duration')"
mask="000d12h34m"
[rules]="rules"
(keydown)="onKey(formGroup.get('duration'))"
>
</kendo-maskedtextbox>
public rules = {
'1': /[0-2]/,
'2': /[0-9]/,
'3': /[0-5]/,
'4': /[0-9]/,
};
public onKey(fg: FormControl) {
setTimeout(() => {
// check for hours > 23
if (Number(fg.value?.split('d')[1].substring(0, 2)) > 23) {
const value = fg.value.substring(0, 5) + ` ` + fg.value.substring(6);
fg.setValue(value);
}
}, 200);
}