【问题标题】:pattern for accepting number range? [duplicate]接受数字范围的模式? [复制]
【发布时间】:2018-11-26 10:29:59
【问题描述】:

我应该使用什么模式来接受数字范围,例如 100 - 200?

<input type="text" pattern="" name="numRange">

如果可以确保最小值低于最大值。即 100 - 200 这里 100 应该低于 200。谢谢!

【问题讨论】:

  • “如果可以确保最小值低于最大值”是什么意思?
  • -之前的第一部分比-之后的部分小。
  • 您可能希望使用类型number: &lt;input type="number" step="1" min="100" max="200"&gt;

标签: regex html


【解决方案1】:

正如revo 在 cmets 中提到的,您可以像这样验证数字范围:

<form action="somefile.php">
  <input type="number" step="1" min="100" max="200" id="numRange">
</form>

正则表达式方法(不推荐):

var input = document.getElementById('numRange');

input.oninvalid = function(event) {
  event.target.setCustomValidity('number range should be betweeb 100-200')
}
<form action="somefile.php">
  <input type="text" name="number" placeholder="100-200" pattern="^(1\d\d|200)$" id="numRange">
</form>

这两种方法的主要区别是第一种使用type="number",第二种依赖正则表达式javascript并使用type="text"

【讨论】:

  • 没错。您还可以将正则表达式缩短为 (1\d\d|200)。默认情况下应用结束锚点:pattern="(1\d\d|200)".
猜你喜欢
  • 2014-05-08
  • 2011-09-24
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多