我试图在javascript中验证Integer和float值,但未能实现它。它总是允许"。" 。请帮我解决这个正则表达式错误。
结果: - 1,1.1,.1
我正在检查onkeypress事件。它不起作用。
<input type="text" onkeypress="Test()" style="width:100px"/>
function Test() {
var code;
var character;
if (document.all)
{
code = window.event.keyCode;
}
else {
code = arguments.callee.caller.arguments[0].which;
}
var character = String.fromCharCode(code);
var txt = new RegExp('([0-9]*[.])?[0-9]+');//only numueric value
if (!txt.test(character)) {
if (document.all) {
window.event.returnValue = false;
}
else {
arguments.callee.caller.arguments[0].preventDefault();
}
}
}
答案 0 :(得分:0)
你需要做两件事:
1)使用&#34; onkeyup&#34;而不是&#34; onkeypress&#34;
2)使用此RegExp:
(^(- )?[0-9]*([\.]?[0-9]+)?$)
我把它放在在线测试仪上,你可以在这里测试一下:
https://regex101.com/r/zL1mB0/3
自您的第一个问题编辑
以来更新的答案版本