0

私は正規表現にかなり慣れていないので、正しく機能するように定式化したものを取得するのに時間を費やしています。以下は私が定式化した表現です。

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

16.24 より大きい数値を検証する式を作成しようとしています。入力は、ユーザーが検証のために 17.00 を入力しなくても、17 のような整数を受け入れることができる必要があります。私が間違っていることのアイデアはありますか?

4

1 に答える 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 に答える