首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >输入数字接受尾部短划线

输入数字接受尾部短划线
EN

Stack Overflow用户
提问于 2018-04-27 22:18:23
回答 4查看 1.3K关注 0票数 2

我如何阻止输入接受尾部破折号的数量(像"10-“或”10-7“这样的值)?如果你输入了错误的格式,输入不会给你任何值。

<input name="Number" type="number">

EN

回答 4

Stack Overflow用户

发布于 2018-04-27 22:21:39

代码语言:javascript
运行
复制
function validate(evt) {
  l = document.getElementsByTagName('input')[0].value.length;
  if(l === 0 && String.fromCharCode(evt.keyCode) === '-') return
  var theEvent = evt || window.event;
  var key = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode( key );
  var regex = /[0-9]|\./;
  if( !regex.test(key) ) {
    theEvent.returnValue = false;
    if(theEvent.preventDefault) theEvent.preventDefault();
  }
}
代码语言:javascript
运行
复制
<input type='text' onkeypress='validate(event)' />

票数 0
EN

Stack Overflow用户

发布于 2018-04-27 22:22:14

您可以使用pattern属性:

代码语言:javascript
运行
复制
<input name="Number" type="number" pattern="[0-9]*">
票数 0
EN

Stack Overflow用户

发布于 2018-04-27 22:30:49

如果不验证输入的值,这是不可能的。

由于它是一个表示数字的字符串,因此无法确定该字符串是否表示数值。

允许的属性不会使您能够验证数字输入控件的值。

在JavaScript的帮助下实现这一点的一种方法可能如下所示。

代码语言:javascript
运行
复制
var numInput = document.querySelector('input');

// Listen for input event on numInput.
numInput.addEventListener('input', function(){
    // Let's match only digits.
    var num = this.value.match(/^\d+$/);
    if (num === null) {
        // If we have no match, value will be empty.
        this.value = "";
    }
}, false)



<input name="Number" type="number" min="0" >
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50064395

复制
相关文章

相似问题

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