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

新手上路,请多包涵

我找不到正确的正则表达式模式,即使有很多这类问题。

我不希望用户能够键入或输入

<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>

原文由 SCS 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 689
2 个回答

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

<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 评论datashaman 与启用 ENTER 键相关的评论)。

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

原文由 Wiktor Stribiżew 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 typeminoninput

 <input type="number" min="0" step="1" oninput="validity.valid||(value='');">

 <form>
<label>Input with positive numbers only</label><br/><br/>
<input type="number" min="0" step="1" oninput="validity.valid||(value='');">
</form>

原文由 Nikhil Mahirrao 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题