【问题标题】:RegEx validation Error javascript for Numeric Value数值的正则表达式验证错误javascript
【发布时间】:2016-08-22 08:45:11
【问题描述】:

我正在尝试在 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();
            }
        }
    }

【问题讨论】:

  • 假设您的意思是只允许整数,请从您的正则表达式中删除 [.]
  • 你想只测试整数还是浮点数?
  • @Toto 我需要测试整数 + 浮点数
  • 请考虑添加一些输入和所需输出的示例。

标签: javascript jquery html asp.net regex


【解决方案1】:

你需要做两件事:

1) 使用“onkeyup”而不是“onkeypress”

2) 使用这个正则表达式:

(^(- )?[0-9]*([\.]?[0-9]+)?$)

我把它放在一个在线测试器中,你可以在这里测试它:

https://regex101.com/r/zL1mB0/3

自您的第一个问题编辑以来更新的答案版本

【讨论】:

  • 请检查我更新的问题。您的答案在这种情况下也不起作用。
  • 我对其进行了更新,使其适用于“结果:- 1,1.1,.1”。再检查一遍
  • 如果不好,请努力解释清楚什么应该有效,什么不应该。
猜你喜欢
  • 1970-01-01
  • 2019-03-23
  • 1970-01-01
  • 2023-03-23
  • 2017-10-16
  • 1970-01-01
  • 2013-08-24
  • 2012-03-29
  • 1970-01-01
相关资源
最近更新 更多