regex - 仅正整数的 HTML 输入(类型=数字)

标签 regex html validation

我找不到正确的正则表达式模式,尽管有很多此类问题。

我不希望用户能够打字或输入

<td><input type="number" pattern=" 0+\.[0-9]*[1-9][0-9]*$" name="itemConsumption" /></td>
  1. -1.0(负值)
  2. 字符串值和任何字符
  3. 1.0(十进制值)
  4. 没有范围限制

我只想接受正整数

已解决 不需要正则表达式,我不知道这个 :D

<td><input type="number" pattern=" 0+\.[0-9]*[1-9][0-9]*$" name="itemConsumption" onkeypress="return event.charCode >= 48 && event.charCode <= 57"</td> 

最佳答案

要禁止除数字以外的任何输入,您可以使用

<input type="text" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57" name="itemConsumption" />
                   ^------------....

<form id="mfrm">
<table>
    <tr>
        <td>Enter number only: <input type="text" name="itemConsumption" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57" /></td>
        <td><input type="Submit"/></td>
    </tr>
</table>

在这里,event.charCode == 8 || event.charCode == 0 || event.charCode == 13条件处理按下 DELETE、BACKSPACE 或 ENTER 键时的情况(对于 Firefox 很重要,请参阅下面的 Mohit's comment 和与启用 ENTER 键相关的 datashaman's comment)。

event.charCode >= 48 && event.charCode <= 57意味着将只返回 0(十进制代码 48)和所有其他最多 9(十进制代码 57)的数字。

关于regex - 仅正整数的 HTML 输入(类型=数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32777184/

相关文章:

JavaScript 正则表达式 : Get everything from inside/tags

java - 如何在包含单个点或句点的文件中获取单词?

javascript - 单击 anchor 标记后将单选按钮标记为选中

jquery - 如何使用 jQuery 在文本字段中允许输入 20 - 50 之间的数字

java - 我应该如何显示 ICellEditorValidator 检测到的验证错误?

python - 设计一个正则表达式来查找任何名词短语

java - "("和 ")"的条件使用

html - 不同高度的 div 在两列中 float

javascript - 使用 js 设置加载屏幕高度 - 如何防止 JS 运行前高度错误的闪烁?

java - Spring MVC + hibernate : data validation strategies