【发布时间】:2014-07-03 15:35:16
【问题描述】:
在输入字段上使用 type="number" 时,regex 验证似乎不起作用。
<input type="number" step="any" min="0" max="24" value="0">
使用 step, min, max 的新基于浏览器的验证按预期工作。然而,这在浏览器中不一致吗?
问题
如何使用正则表达式验证数字字段?
如果有人有信息,我还对区分数字和文本字段的其他因素感兴趣。
注意事项
我发现检查空字符串会导致验证触发IF不满足数字字段的条件。
【问题讨论】:
-
您始终可以通过 keyup 上的脚本调用您的验证。或者只是设置删除 type=number 并仅使用正则表达式。
-
感谢您的提示。按键没有区别,我需要设备键盘的类型号。
-
您可以使用
element.validity.valid来检查输入是否包含有效数字。还有一个pattern属性,您可以在其中设置一个正则表达式来验证您的输入。最后,您可以使用 keypress 防止用户输入除数字以外的其他内容:stackoverflow.com/a/15649226/2806497 -
顺便说一句,对这些新输入要谨慎,它们并没有在所有浏览器中完全实现(例如,Firefox 在上次更新中添加了对它的支持)。我不建议在生产环境中使用它。
-
正是这就是为什么我使用正则表达式验证器来确保完全支持。我不能依赖浏览器内置的号码验证。
标签: javascript regex html browser input