Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数值的正则表达式验证错误javascript_Javascript_Jquery_Html_Asp.net_Regex - Fatal编程技术网

数值的正则表达式验证错误javascript

数值的正则表达式验证错误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

我试图在javascript中验证整数和浮点值,但未能实现。它总是允许“.”。请帮我解决这个正则表达式错误

结果:-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();
            }
        }
    }

功能测试(){
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”。再次检查如果不好,请努力准确地解释什么应该起作用,什么不应该起作用。