javascript - 使用正则表达式验证 PDF 表单中的时间输入字段
问题描述
我在我的 PDF 表单中创建了以下 JavaScript 函数:
var rgTime = /^[^0-9]{1,2}[^:][^0-9]{2}$/;
function testTimeEntry(t) {
if (rgTime.test(t)){
app.alert("Opps! Time entry is invalid. Only numbers and the colon(:) are allowed.");
event.value = "";
}
}
然后我testTimeEntry(event.value);
在我的时间字段的验证部分使用。但是,只有当我用 5 个字母填写该字段时它才有效。我基本上是想在这个字段中发现意外使用分号(或冒号以外的任何内容)和字母字符。
我没有故意使用该字段的时间格式,但我仍然需要确保输入的格式是 12 小时 (hh:mm)。谢谢!
解决方案
您的正则表达式字符串rgTime = /^[^0-9]{1,2}[^:][^0-9]{2}$/
只会与完全无效输入的字符串匹配。如果用户输入了一个有效的 'hh' 值,那么这个正则表达式将不匹配。例如"11:1s"
,您的正则表达式不会匹配该字符串。
也许寻找有效输入并在无效时提醒他们会更容易
var rgTime = /^[0-9]{1,2}[:][0-9]{2}$/;
function testTimeEntry(t) {
if (!rgTime.test(t)){
app.alert("Opps! Time entry is invalid. Only numbers and the colon(:) are allowed.");
event.value = "";
}
}
推荐阅读
- python - 验证嵌套值的问题
- python - 没有HTML的弹出网页上的Selenium登录
- python - 使用 Python 熊猫数据框的嵌套连接
- oracle - 计算每个车主拥有的汽车数量
- php - 将 Google OAuth 授权令牌存储在数据库中
- kubernetes - 如何授予对 K8s 仪表板的只读访问权限?
- java - 基于Android模拟器中特定定位器的最佳向上/向下滚动方法是什么?
- python - pyspark 数据框为每一行获得第二低的值
- visual-c++ - 对导入的方法强制 stdcall
- laravel - Laravel:将此服务提供者添加到 app.php 会给出“找不到类日志”