0

我对正则表达式相当陌生,我有时间得到一个我制定的可以正常工作的表达式。以下是我制定的表达方式。

^((?!^1[0-6]*\.?[0-2][0-4]+)^(\d+))$

我正在尝试构建一个表达式来验证大于 16.24 的数字。输入需要能够接受像 17 这样的整数,而无需用户输入 17.00 来验证。关于我做错了什么的任何想法?

4

1 回答 1

1

您可以这样做的一种方法是使用正则表达式来提取数值,然后将它们解析为一个数字并将它们与所需的常量进行比较。

Javascript:代码示例

数字作为字符串:

var test = function(str){
    return 16.24 < parseFloat(str);
};
console.log( test("234.23") == true ); // true
console.log( test("-234.23") == false ); // true

隐藏在带有其他字符的字符串中的数字。

var test = function (str) {
    var re,
    num;

    if (/[eE]/.test(str)) {
        // search for scientific numbers
        re = /-?\d+(\.\d+)?[eE]\d+/;
    } else {
        // search for whole or decimal numbers
        re = /-?\d+(\.\d{1,2})?/;
    }
    num = str.match(re);
    return 16.24 < parseFloat(num);
};
console.log(test("input = 234.23") == true); // true
console.log(test("input = 2e34") == true); // true
console.log(test("input = -2e34") == false); // true
console.log(test("input = -234.23") == false); // true
于 2013-03-11T00:59:42.957 回答