如何用正则表达式限制只输入整数(包括负整数和0)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用正则表达式限制只输入整数(包括负整数和0)相关的知识,希望对你有一定的参考价值。
这段代码只能限制输入正整数,那位大哥帮忙修改成可以输入负整数咯!谢谢!
<td align="center"><input type="text" size="8" name="xzrk" value="" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"/></td>
this.value.replace(-?[1-9]\d*$,'') 这样改为什么不行呢???
同时兼容了小数。
追问大哥,这个替换功能好像没有起作用,还是可以输入字母啊!你试试!!
追答哦, 看错了,改成这样:
this.value.match(/[+-]?\\d+/g).join(\'\');会将原始输入中的所有非整数内容(包括小数点,不包括整数前的“+”或“-”号)删除,执行结果示例:
输入“abc-123.45ef--67ghi+890”得到“-12345-67+890”
如果要做到更好的禁止输入不允许字符的效果,建议在keydown事件中进行拦截。
追问也不知道咋回事,还是不行,但上面那兄弟的代码可以实现!谢谢了啊!
参考技术A onkeyup="value=value.match(/^-?[0-9]\d*$/)||value.match(/-?/)"本回答被提问者采纳 参考技术B "^-?//d+$" //整数 只是判断使用方法: var r = /^/+?[1-9][0-9]*$/; //正整数
r.test(str); 参考技术C <input type="text" id="inp02" onkeypress="return allowInt(event, this);" onafterpaste="handlePaste(this);" onblur="handlePaste(this);" />
<script>
// 使用 onkeypress 事件来处理每一次用户的输入,判断输入的字符是不是符合要求的字符。
function allowInt(e, obj)
var charCode, char, val=obj.value;
if(typeof e.charCode=='number')
charCode=e.charCode;
else
charCode=e.keyCode;
char=String.fromCharCode(charCode);
// 负号只允许当前文本框没有值的时候才允许输入
if(char=='-' && val.length==0 || /\d/.test(char))
return true;
return false;
// 处理粘贴的情况,使用 onblur 来处理
function handlePaste(obj)
var val=obj.value.replace(/(^\s*)|(\s*$)/g,'');
obj.value=val.replace(/[^-\d]/g, '');
</script>
以上是关于如何用正则表达式限制只输入整数(包括负整数和0)的主要内容,如果未能解决你的问题,请参考以下文章
js正则表达式 判断输入框是不是为正整数或者正整数保留两位小数