如何使用JS通过正则限制input输入框只能输入整数,小数两位小数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用JS通过正则限制input输入框只能输入整数,小数两位小数相关的知识,希望对你有一定的参考价值。

参考技术A 第一: 限制只能是整数
<input type = "text" name= "number" id = 'number' onkeyup= "if(! /^d+$/.test(this.value))alert('只能整数');this.value='';" />

如果不是整数就直接alert

第二: 限制是两位的小数
<input type = "text" name= "price" id = 'price' onkeyup= "if( ! /^d*(?:.d0,2)?$/.test(this.value))alert('只能输入数字,小数点后只能保留两位');this.value='';" />

原理:

通过 正则表达式判断,不满足 执行alert。

第一个正则表达式是 /^d+$/ 表示可以是一个或者多个数字

第二个正则表达式是
/^d*(?:.d0,2)?$/

表示必须是数字开头,数字结尾。

这里重点是要数字结尾, 在计算机中通常小数 1. , 2. 这种写法, 就是可是小数点结尾的, 是正确的。这里强制让数字结尾。

test()

只要找到满足的部分就返回真。

意思是是
/d/. test ( 'a' ) // false
/d/. test ( 'a' ) // true
/d/. test ( 'a' ) // true

所以要保证谁开头谁结尾。 开头用 $, 结尾用 ^本回答被提问者采纳

js验证如何限制文本框只能输入数字

麻烦哪位大侠能帮忙解决一下...非常感谢了.代码最好写上注释哈 !
1.js验证只能输入数字.
2.js验证只能输入字母.数字和下划线.
3.js验证固定电话:只能是数字.并且有相应的格式028-67519441 或者 0839-8777222或者 028-6545124

js进行数据校验使用正则表达式会简单很多,如下所示:

1.js验证只能输入数字: 

具体代码如下:

function check_validate1(value)      

var reg = /^/d+$/;  // 定义正则表达式

if( value.constructor === String )  // 判断传入的是否是字符串   

var re = value.match( reg );   // 规则校验

return true;    

    

return false;    

2.js验证只能输入字母.数字和下划线:  

具体代码如下:

function check_validate2(value)    

var reg = /^/w+$/;    

if( value.constructor === String ) // 判断传入的是否是字符串    

var re = value.match( reg );    

return true;    

    

return false;    

 

3.js验证固定电话:只能是数字.并且有相应的格式,如(xxx-xxxxxxx 或者 xxxx-xxxxxxx):  

具体代码如下:

function check_validate(value)    

var reg = /^(/d3,4)-(/d7,8)/;    

if( value.constructor === String ) // 判断传入的是否是字符串    

var re = value.match( reg );    

return true;    

    

return false;    

参考技术A

1、只能输入数字

function chkPrice(obj) 

obj.value = obj.value.replace(/[^/d.]/g,""); 

//必须保证第一位为数字而不是. 

obj.value = obj.value.replace(/^/./g,""); 

//保证只有出现一个.而没有多个. 

obj.value = obj.value.replace(//.2,/g,"."); 

//保证.只出现一次,而不能出现两次以上 

obj.value = obj.value.replace(".","$#$").replace(//./g,"").replace("$#$","."); 

 

function chkLast(obj) 

// 如果出现非法字符就截取掉 

if(obj.value.substr((obj.value.length - 1), 1) == '.') 

obj.value = obj.value.substr(0,(obj.value.length - 1)); 

 

2、只能输入英文字母和数字

<input onkeyup="value=value.replace(/[^\\w\\.\\/]/ig,'')">

扩展资料:

js限制文本框只能输入数字方法小结

有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字、小数点、英文字母、汉字等代码。

例如,输入大于0的正整数

代码如下:

<input onkeyup="if(this.value.length==1)this.value=this.value.replace(/[^1-9]/g,'')elsethis.value=this.value.replace(/\\D/g,'')" onafterpaste="if(this.value.length==1)this.value=this.value.replace(/[^1-9]/g,'')elsethis.value=this.value.replace(/\\D/g,'')">

参考技术B

js限制文本框只能输入数字方法,有时需要限制文本框输入内容的类型,正则表达式限制文本框只能输入数字、小数点、英文字母、汉字等代码。

一、输入大于0的正整数代码:

<input onkeyup="if(this.value.length==1)this.value=this.value.replace(/[^1-

9]/g,'')elsethis.value=this.value.replace(/\\D/g,'')" onafterpaste="if(this.value.length==1)

this.value=this.value.replace(/[^1-9]/g,'')elsethis.value=this.value.replace(/\\D/g,'')">

二、文本框只能输入数字代码(小数点也不能输入)代码:

<input onkeyup="this.value=this.value.replace(/\\D/g,'')" 

onafterpaste="this.value=this.value.replace(/\\D/g,'')">

三、只能输入数字,能输小数点代码:

<input onkeyup="if(isNaN(value))execCommand('undo')" 

onafterpaste="if(isNaN(value))execCommand('undo')">


<input name=txt1 onchange="if(/\\D/.test(this.value))alert('只能输入数字');this.value='';">

四、数字和小数点方法二代码:

<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\\+\\-]?\\d*?\\.?

\\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\\+\\-]?\\d+

(?:\\.\\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\\+\\-]?\\d*?\\.?\\d*?

$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\\+\\-]?\\d+

(?:\\.\\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\\+\\-]?\\d+(?:\\.\\d+)?|\\.\\d*?)

$/))this.value=this.o_value;elseif(this.value.match(/^\\.\\d+$/))this.value=0+this.value;if(this.

value.match(/^\\.$/))this.value=0;this.o_value=this.value">


五、只能输入字母和汉字:

<input onkeyup="value=value.replace(/[\\d]/g,'') 

"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\\d]/g,'

'))" maxlength=10 name="Numbers">

六、只能输入英文字母和数字,不能输入中文:

<input onkeyup="value=value.replace(/[^\\w\\.\\/]/ig,'')">

七、只能输入数字和英文:

<input onKeyUp="value=value.replace(/[^\\d|chun]/g,'')">

八:小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:

<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || 

/\\.\\d\\d$/.test(value))event.returnValue=false">

九、小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:

<input onkeyup="this.value=this.value.replace(/^(\\-)*(\\d+)\\.(\\d\\d).*$/,'$1$2.$3')">

参考技术C

js验证只能输入数字:

function check_validate1(value) 
//定义正则表达式部分 
var reg = /^\\d+$/; 
if( value.constructor === String ) 
var re = value.match( reg ); 
return true; 
 
return false; 
 

js验证只能输入字母,数字和下划线:

function check_validate2(value) 
var reg = /^\\w+$/; 
if( value.constructor === String ) 
var re = value.match( reg ); 
return true; 
 
return false; 

 



js验证固定电话:只能是数字,并且有相应的格式//028-67519441 或者 0839-8777222或者 028-6545124 

function check_validate(value) 
var reg = /^(\\d3,4)-(\\d7,8)/; 
if( value.constructor === String ) 
var re = value.match( reg ); 
return true; 
 
return false; 

扩展资料:

JS代码在优化中:

尽量减少JS代码的运用,减少统计代码数量,装的越多越会影响打开速度,每增加一个要慎之又慎。

网站的打开速度属于基础体验,如果打开速度很慢超过6秒了,那么网站在优化体验方面将会是很差的。

页面的打开速度几乎是起到致命作用的,对于代码真正决定取舍的人是SEO。

JS要放到网站的底部,先加载正文,再加载JS代码。

JS合并,减少JS加载次数。

.JS代码减肥,工具:pagespeed,百度统计,启用GZIP压缩。

参考资料:js代码-百度百科



参考技术D js限制只能数字输入,并且在把输入的“非法字符”清除掉之后将焦点停留在输入非法字符的位置,参考如下:
html部分:
<input value="" type="text" onkeyup="javascript:RepNumber(this)">

JavaScript部分:
function RepNumber(obj)
var reg = /^[\d]+$/g;
if (!reg.test(obj.value))
var txt = obj.value;
txt.replace(/[^0-9]+/, function (char, index, val) //匹配第一次非数字字符
obj.value = val.replace(/\D/g, "");//将非数字字符替换成""
var rtextRange = null;
if (obj.setSelectionRange)
obj.setSelectionRange(index, index);
else //支持ie
rtextRange = obj.createTextRange();
rtextRange.moveStart('character', index);
rtextRange.collapse(true);
rtextRange.select();

)

以上是关于如何使用JS通过正则限制input输入框只能输入整数,小数两位小数的主要内容,如果未能解决你的问题,请参考以下文章

js验证如何限制文本框只能输入数字

js 如何判断只能输入非0数字

js验证如何限制文本框只能输入数字

js怎么让input只能输入数字

input文本框输入限制(正则表达式)

用正则表达式限制文本框只能输入数字和+