首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入type=“数字”为3位数字或8位数字

输入type=“数字”为3位数字或8位数字
EN

Stack Overflow用户
提问于 2020-10-22 13:24:54
回答 2查看 4.4K关注 0票数 2

是否可以限制用户可以进入字段的数字数。例如。

  • 为3位数字184,
  • 为8位数字,18875264为
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-22 14:12:26

HTML5为input标签引入了一个新的属性- pattern。可以将regex指定为模式属性值来验证输入。

pattern不适用于type="number",所以我将使用type="text"type="tel"也能工作,但是除非你真的想输入一个电话号码,否则不要使用它。

代码语言:javascript
复制
<form>
  <label for="num-input">3 or 8 digit number: </label>
  <input id="num-input" 
         type="text"
         required
         pattern="\d{3}|\d{8}" 
         title="must be 3 or 8 digit"/>
  <br/>
  <input type="submit" value="submit" />
</form>

regex \d{3}|\d{8}匹配3位数字或8位数字。

票数 2
EN

Stack Overflow用户

发布于 2020-10-22 13:31:26

将其限制为三位数的最基本的HTML方法是:

代码语言:javascript
复制
<input type="number" max="999" min="-999" />

但是,当用户手动输入值而不是使用输入的“添加”或“减”按钮时,这不会强制使用maxmin属性。要验证这一点,您需要添加一些检查用户输入的javascript:

代码语言:javascript
复制
document.querySelector('input[max], input[min]').onblur = function (event) {
  const numValue = Number(event.target.value);
  // if within the expected range, do nothing
  if (numValue  < event.target.max && numValue  > event.target.min) return;
  // check if it's closer to max than to min,
  // then set the value to max or min accordingly
  event.target.value = event.target.max - numValue  < event.target.min - numValue  ?
    event.target.max :
    event.target.min;
}

更新

经过进一步的检查,我意识到我误解了这个问题。

为了只允许三到八位数字,您可以使用以下验证:

代码语言:javascript
复制
document.querySelector('input').onblur = function (event) {
  let valString = Number(event.target.value).toString();
  if (valString.length === 3 || valString.length === 8) return;
  event.target.value = valString.length > 8 ?
    valString.substr(0, 8) :
    (valString.length > 3 ? valString.substr(0, 3) : null);
}
代码语言:javascript
复制
<input type="number" />

这将将任何大于8位数的值修剪为8位数,将任何大于3位但小于8位数的值修剪为3位数,并在输入1或2位数字值时留下空白。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64483248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档