【JS】input输入框只能输入数字

一、实现思路

input只能输入纯数字的思路其实很简单,监听输入框值的变化,每次输入检索输入框的值,将非数字的字段替换成空,再将此值赋予给输入框。

关键代码:

\d:匹配数字

^/d:全文匹配非数字

replace(/[^/d]/g,‘‘):全文匹配非数字,并替换成空。

那我们的实现代码为:

var input = document.querySelector("#demo");
input.oninput = function (){
    input.value = input.value.replace(/[^\d]/g,‘‘);
}

输入数字字母试试:

二、onchange  onkeyup与oninput的选择

其实说到input输入监听,更多想到的是onchange与onkeyup,而在上面实现中,使用的却是onkeyup,这里简单说说理由。

1.oninput:在用户输入时触发,与onchange不同之处在于 oninput 事件在元素值发生变化是立即触发。

2.onchange:在input值发生改变且输入框失去焦点时触发,所以在用户输入失去焦点前,非数字并不能被替换为空,视觉上存在一点缺陷。

试试onchange:

3.onkeyup:键盘弹起时触发,也存在一个问题,英文输入情况下,非数字会短暂存在后才会被替换,中文输入情况下,字母还是能输入,功能上存在一定缺陷。

试试onkeyup:

综上,还是推荐oninput达到最佳效果。

原文地址:https://www.cnblogs.com/echolun/p/9711267.html

时间: 2024-10-16 22:05:47

【JS】input输入框只能输入数字的相关文章

input输入框 只能输入数字 oninput = "value=value.replace(/[^\d]/g,'')"

项目中因为利用 element-ui 和avue两个ui框架搭建的 1.利用element-ui自带的校验需要注意点 prop  :rules ref这三个属性 2.利用oninput时间进行校验  oninput = "value=value.replace(/[^\d]/g,'')"   写在html中Input 标签内可以 ,写在第三方ui框架也可以 如图 这是html中input标签中 input输入框 只能输入数字 oninput = "value=value.re

js实现input输入框只能输入数字的功能(完美测试通过)

<input type="text" style="ime-mode:disabled;" onpaste="return false;" onkeypress="keyPress()" /> function keyPress() { var keyCode = event.keyCode; if ((keyCode >= 48 && keyCode <= 57)) { event.r

js实现input输入框只能输入数字的功能

1 <input type="text" style="ime-mode:disabled;" onpaste="return false;" onkeypress="keyPress()" /> 2 3 function keyPress() { 4 var keyCode = event.keyCode; 5 if ((keyCode >= 48 && keyCode <= 57))

angularjs中的验证input输入框只能输入数字和小数点

百度的资料:自己记录看下 把js的验证方法改成angular可使用的方法 AngularJS文件的写法: $scope.clearNoNum = function(obj,attr){ //先把非数字的都替换掉,除了数字和.obj[attr] = obj[attr].replace(/[^\d.]/g,"");//必须保证第一个为数字而不是.obj[attr] = obj[attr].replace(/^\./g,"");//保证只有出现一个.而没有多个.obj[a

angular js input校验只能输入数字和字母 directive写法一则

js代码:.directive('validateNumberLetter', function () { return { require: 'ngModel', link: function (scope, elm, attrs, ctrl) { scope.$watch(attrs.ngModel, function(n){ if(!n) return; var oldName = attrs.validateNumberLetter; if(oldName !== n){ var reg

购物车中的input输入框只能输入数字和输入为0的时候默认为1

<input type="text" value="1" onkeyup="value=(parseInt((value=value.replace(/\D/g,''))==''||parseInt((value=value.replace(/\D/g,''))==0)?'1':value,10))"> 原文地址:https://www.cnblogs.com/yuanyanbk/p/8136840.html

html input验证只能输入数字,不能输入其他

html input验证只能输入数字,不能输入其他 此方法为借鉴别人的,在此只做记录. <input type="text" onkeyup="if(!/^\d+$/.test(this.value)) tip.innerHTML='必须输入数字,且不能有空格.'; else tip.innerHTML='';" /><span id="tip"></span>

HTML输入框只能输入数字或数字字母组合

JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> 2.只能输入数字,能输小数点.<input onkeyup="if(isNaN(value))execCommand('undo')"

js文本框只能输入数字,

1,文本框只能输入数字代码(小数点也不能输入) 复制代码代码示例: <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> 2,只能输入数字,能输小数点. 复制代码代码示例: <input onkeyup="if(isNaN(value))execCommand('und