angular - 以 HHH:MM 格式输入小时的 Angular 自定义验证器
问题描述
我需要在几小时和几分钟内验证输入,但它是 HHH:MM 中 6 个字符的奇怪格式。例如,需要在输入中输入30 小时和 15 分钟,例如030:15
下面是我创建自定义验证器的尝试,但我需要一些帮助才能让正则表达式比较输入的小时数在 0-70 和分钟之间为 00-59。
import { AbstractControl, ValidatorFn, FormControl } from '@angular/forms';
export class RegexConstants {
public static DECIMAL_6_4 = /^[0-9:-]{6}$/;
}
export function hoursClaimedValidator(input: string,reg: RegexConstants){
return (control: AbstractControl):{[key: string]: boolean} | null => {
if( control.value !==null && (isNaN(control.value) || control.value.toString().match(reg)))
{
return {'hoursClaimed': true}
}
return null;
};
}
解决方案
所以,如果你需要一个正则表达式来处理你需要的输入,你可以试试这个:
hhhmm = new RegExp(/^0([0-6][0-9]|70):[0-5][0-9]$/);
使用第一个插入符号,您强制用户以 0 开头。然后您创建一个or语句,让用户在 00 到 69 组合或 70 之间进行选择。在此之后,需要冒号 (:)。最后,字符串必须以 00 到 59 之间的数字结尾。
推荐阅读
- java - Volley 无法从服务器获取错误,但向我展示了 volley 错误侦听器为什么?
- javascript - Hammer.js 中 panend 和 pancancel 的区别?
- postman - 更新api后如何更新集合
- wordpress - WooCommerce 添加到购物车并覆盖价格
- c++ - 尝试使用“make -j4”编译软件。得到我无法理解的错误
- android - 如何将片段标签或 ID 从一个活动传递到另一个活动?
- laravel - Tailwind Css - 在滚动视图时扩展背景颜色
- visual-studio-code - 禁止在 SSH 中打开大文件
- javascript - 如何将变量名称附加到 .getSheetByName()
- python - Python:安全地呈现用户输入的 html 代码