javascript - 如何编写一个应该接受 0 到 30 之间的值但不接受十进制值的验证器函数?在角
问题描述
如果用户输入 0 到 30 之间的值,它应该接受 0 ,2, 20 并且不应该接受像 20.1 , 0.1 这样的十进制值
我使用了验证器 min(0) 和验证器 max(30) 但它接受十进制值需要一个不应该接受十进制值的验证器
如果必须使用正则表达式模式,你可以给正则表达式模式代码吗?
解决方案
创建自定义验证器
通过实现ValidatorFn 接口在 Angular 中创建自定义验证器
创建一个只接受整数 0 到 30 的验证器
因此,为了实现我们看到的接口,我们需要一个函数,它接受一个抽象控制,并在没有错误时返回 null,或者如果有错误,则返回一个键值字典,这给了我们以下内容:
export const myNumberValidator: ValidatorFn = (control: AbstractControl) => {
if (Math.floor(control?.value) != control?.value || control?.value < 0 || control?.value > 30)
return {"INVALID_NUMBER": "Number must be a whole number between 0 and 30"}
return null
}
推荐阅读
- python - 错误:libfreetype.6.dylib 需要 54.0.0 或更高版本,但 libpng16.16.dylib 提供 52.0.0 版本
- tensorflow - IN CNN 无法训练我所有的样本图像
- virtual-machine - Proxmox 减少(缩小)硬盘虚拟机
- grails - 将 Groovy 脚本的结果放入 GSP
- javascript - 为什么即使我使用异步和等待,项目的总计数始终为零
- laravel - 当我使用限制或接受 whereIn 时,laravel eger 加载无法正常工作
- javascript - 如何在 CSS/HTML/JS 上创建虚线
- r - 模型未能与 max|grad| 收敛
- android - 如何在 FlatList React Native 中实现复选框
- sql-server - 将日期时间从 12 小时格式转换为 24 小时格式