数值的正则表达式验证错误javascript
我试图在javascript中验证整数和浮点值,但未能实现。它总是允许“.”。请帮我解决这个正则表达式错误 结果:-1,1.1,1 我正在登记onkeypress事件。在那种情况下是行不通的数值的正则表达式验证错误javascript,javascript,jquery,html,asp.net,regex,Javascript,Jquery,Html,Asp.net,Regex,我试图在javascript中验证整数和浮点值,但未能实现。它总是允许“.”。请帮我解决这个正则表达式错误 结果:-1,1.1,1 我正在登记onkeypress事件。在那种情况下是行不通的 <input type="text" onkeypress="Test()" style="width:100px"/> function Test() { var code; var character; if (document.a
<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();
}
}
}
功能测试(){
var代码;
var特征;
如果(全部文件)
{
代码=window.event.keyCode;
}
否则{
code=arguments.callee.caller.arguments[0]。其中;
}
var character=String.fromCharCode(代码);
var txt=new RegExp('([0-9]*[.])?[0-9]+';//仅数值
如果(!txt.test(字符)){
如果(全部文件){
window.event.returnValue=false;
}
否则{
arguments.callee.caller.arguments[0].preventDefault();
}
}
}
您需要做两件事:
1) 使用“onkeyup”而不是“onkeypress”
2) 使用此RegExp:
(^(- )?[0-9]*([\.]?[0-9]+)?$)
我将其放置在在线测试仪中,您可以在此处进行测试:
更新后的答案版本,因为你的第一个问题是编辑你想允许整数值,从你的ReXeDO中删除<代码> [.]代码>你想测试整数还是浮点?@ TOTO我需要测试整数+浮点,请考虑增加一些输入和期望输出的例子。请检查我更新的问题。您的答案在这种情况下也不起作用。我对其进行了更新,使其适用于“结果:-1,1.1,1”。再次检查如果不好,请努力准确地解释什么应该起作用,什么不应该起作用。