用正则表达式限制文本框只能输入数字和+
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用正则表达式限制文本框只能输入数字和+相关的知识,希望对你有一定的参考价值。
例如:
只能输入数字代码(小数点也不能输入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')"
只是现在把条件改为"只能输入数字和+", 例如:
22
22+
+22
22+22+33
<input type="text" onkeyup="this.value=this.value.replace(/[^\d^\+]/,'')" />
这样能满足你所谓的要求
其实这样也是有漏洞的,当你一将键盘按下不松,它是不会触发onkeyup事件的,你的文本框又可以输入其它字符了。
解决方法:把后面事件里的内容写成方法,在onkeyup,和onkeydown两个事件里都调用该方法就可以了!
不好意思刚发现那个 "g" ,我也不大清楚是什么意思,只知道加上后就不用这么麻烦了,直接在正则后面加个"g"的话不需要写onkeydown的方法了。 学习了,等你知道了告诉我一声咯!本回答被提问者采纳
求高手帮忙写一个正则表达式,用来判断一个只能输入数字的文本框若输入英文、汉字或符号显示错误信息
不知道你要用什么语言来写,这里用js来做示例,反正限制只能输入数字的正则表达式是一样用的,就是 ^[0-9]*$,你在别的语言里也一样用。
下面是例子:
<html><head>
<!--
保存此脚本为 test.html,允许浏览器运行脚本,打开此脚本进行测试
-->
<script type="text/javascript">
function check()
var str;
str = document.getElementById("txtInput").value;
if (str.match(/^[0-9]*$/) == null)
alert("非数字。");
</script>
</head>
<body>
输入:<input type="text" id="txtInput" value="" onpropertychange="check()" />
</form>
</body>
</html>追问
我要用Java来写,我原来的正则表达式是这样写的:
regex="[^1234567890.]";
if(txts.getText().matches(regex))System.out,print("必须输入数字");
但是我把[^1234567890.]改成^[0-9]*$后,运行下来我在文本框里输入英文后发现直接显示错误,不显示说“必须输入数字”。请问怎么改?
没用过java,不过看你的正则应该也是行得通的(虽然说可能出现多个小数点的情况 123.123.23,但不至于出错)。
错误提示是什么,你去排排错应该就行了吧。
另外你上面的语句是不是点号错打成逗号了:System.out,print("必须输入数字"); -> System.out.print("必须输入数字");
^\d+$
以上是关于用正则表达式限制文本框只能输入数字和+的主要内容,如果未能解决你的问题,请参考以下文章
replace限制文本框只能输入数字,数字和字母等的正则表达式
markdown 限制文本框中只能输入数字(+, - )的正则表达式写法