JQUERY 一个文本框,限制只能输入百分比或者货币类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQUERY 一个文本框,限制只能输入百分比或者货币类型相关的知识,希望对你有一定的参考价值。
有个文本框, 要求只能输入百分比,最多2位小数,比如 12.34%
或者是货币类型,也是2位小数,比如 $ 12.34,
请问用正则表达式怎么写,最好有直接绑上文本框的js function
<script type="text/javascript">
$(function()
//文本框只能输入数字(不包括小数),并屏蔽输入法和粘贴
$.fn.integer= function()
$(this).css("ime-mode", "disabled");
this.bind("keypress",function(e)
var code = (e.keyCode ? e.keyCode : e.which); //兼容火狐 IE
if(!$.browser.msie&&(e.keyCode==0x8)) //火狐下不能使用退格键
return ;
return code >= 48 && code<= 57;
);
this.bind("paste", function()
return false;
);
this.bind("keyup", function()
if (/(^0+)/.test(this.value))
this.value = this.value.replace(/^0*/, \'\');
);
;
//文本框只能输入数字(包括小数),并屏蔽输入法和粘贴
$.fn.number= function()
$(this).css("ime-mode", "disabled");
this.bind("keypress",function(e)
var code = (e.keyCode ? e.keyCode : e.which); //兼容火狐 IE
if(!$.browser.msie&&(e.keyCode==0x8)) //火狐下不能使用退格键
return ;
if(this.value.indexOf(".")==-1)
return (code >= 48 && code<= 57)||(code==46);
else
return code >= 48 && code<= 57
);
this.bind("paste", function()
return false;
);
this.bind("keyup", function()
if(this.value.slice(0,1) == ".")
this.value = "";
);
this.bind("blur",function()
if(this.value.slice(-1) == ".")
this.value = this.value.slice(0,this.value.length-1);
);
;
);
</script> 参考技术A function validate(value)
if(value == null || value == "") return;
var f = value.substring(0,1);
if(f == "$")
var temp = value.substring(1,value.length);
var result=temp.match(/^[0-9]+(.[0-9]1,2)$/);
if(result != null)
alert("合法");
return;
var e = value.substring(value.length-1,value.length);
if(e == "%")
var temp = value.substring(0,value.length-1);
var result=temp.match(/^[0-9]+(.[0-9]1,2)$/);
if(result != null)
alert("合法");
return;
alert("非法");
<input type="text" id="query1" name="query1" onblur="validate(this.value)"/>本回答被提问者和网友采纳 参考技术B <input type="text" onBlur="val(this);">
<script>
function val(s)
var v = s.value;
if('' == v)
return alert('不能为空');
if(!/^\\$+[0-9]+([.]1[0-9]1,2)?$/.test(v))
alert('只能输入小数位数最多为两位的数字,并能以$开头');
return s.value='';
else
return true;
if(!/^[0-9]+([.]1[0-9]1,2)?%$/.test(v))
alert('只能输入小数位数最多为两位的数字,并只能以%结尾');
return s.value='';
else
return true;
</script>
文本框只能输入数字字母,屏蔽粘贴
对文本框进行输入限制,使得文本框只能输入(或不能输入)数字/字母/汉字等等。
操作方法很多,主要用到了正则表达式,onkeyup,onafterpaste。
在需求上可能不止这些情况,或者有交叉需求的情况,可以根据不同条件自行修改语句达到相应的效果,万变不离其宗。
-----------------------------------------------------------------------------------------------
只能输入数字(整数,屏蔽非法粘贴)
<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 onkeyup="JavaScript:this.value=this.value.replace(/\D/gi,‘‘)" />
只能输入字母和汉字(屏蔽非法粘贴)
<input onkeyup="value=value.replace(/[\d\.]/g,‘‘) "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[\d\.]/g,‘‘))"/>
只能输入字母和数字(屏蔽非法粘贴)
<input onkeyup="value=value.replace(/[\W]/g,‘‘) "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[\W]/g,‘‘))" />
小数点后只能有最多两位(数字,可以有正负号)
<input onkeyup="if(!/^[+-]*(\d)*(\.\d{0,2})*$/.test(value)) this.value=‘‘;"onafterpaste="if(!/^[+-]*(\d)*(\.\d{0,2})*$/.test(value)) this.value=‘‘;">
不能输入中文
<input onkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,‘‘)"onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[\u4E00-\u9FA5]/g,‘‘))" />
不能输入全角标点符(可以有汉字)
<input onkeyup="value=value.replace(/[\uFF00-\uFFFF]/g,‘‘)"onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[\uFF00-\uFFFF]/g,‘‘))" />
by 小鬼PSer
以上是关于JQUERY 一个文本框,限制只能输入百分比或者货币类型的主要内容,如果未能解决你的问题,请参考以下文章