JavaScript正则表达式匹配负数和小数。

9

我想测试这种输入格式:
[可选的负号] 2个数字 [可选的“.”和一个数字],如下所示:

-34-34.533334.5333334JavaScript 中。

这是我编写的代码,但它无法正常工作!

/^(-)\d{2}(\.d\{1})$/

有人可以帮助我吗?

8个回答

15

试试这个正则表达式:

/^-?\d{2}(\.\d+)?$/

一些无效的数值值使用此正则表达式通过测试:'-00.23', -0` - gion_13

4

这个正则表达式可以匹配任何有效的整数。

/^0$|^-?[1-9]\d*(\.\d+)?$/

你可以根据自己的需要进行修改:
/^-?[1-9]\d{0,1}(\.[1-9]{1})?$/

这个匹配项包括2.1、21.4、3、90等数字...


3
也许不需要使用正则表达式。
function validate(val){
    return isNaN(val)?false:(Math.abs(Math.floor(val)).toString().length==2);
}

0

以下简单的HTML代码将验证两位数的正负数字以及小数点后可选的最少1位数字。

JS代码:

    function validateNum() {
        var patForReqdFld = /^(\-)?([\d]{2}(?:\.\d{1,})?)$/;
        var value = document.getElementById('txtNum').value;

        if(patForReqdFld.test(value)) {
            alert('Valid Number: ' + value);
        } else {
            alert('Invalid Number: ' + value);
        }
    }

HTML 代码:

    <label>Enter Number:&nbsp;</label>
    <input type="text" id="txtNum" onBlur="validateNum()"/>

0

尝试使用这个正则表达式:

/^-?[0-9]{2}(?:\.[0-9]+)?$/

0

试试这个:

/^(-)?\d{2}(\.\d+)?$/

0
你可以使用这个正则表达式:
-?\d{2}[.]?\d*

0

你的正则表达式(/^(-)\d{2}(.d{1})$/)的作用是:

首先以负号开头,然后正确地要求两位数字,接着是".",可以匹配任何字符,但应该使用"\"将它限制为符号,最后是一位数字。

正确的示例代码应该是:

var str = '-34.23';
pat=/^\-?\d{2}(\.(\d)*)?$/g;
str.match(pat);

更多可测试的示例:http://jsfiddle.net/GUFgS/1/ 在组后面使用“?”使匹配变为可选项,例如(\.\d*)?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接