0

数字以外が入力されていないことを確認するために、キーアップ時に評価する必要があるテキスト フィールドが多数あります。小数は大丈夫です。値がない場合も同様です。

何らかの理由で、これは小数で一致しています。たとえば、4 を入力してから . フラグが立てられます。

これを修正するにはどうすればよいですか?

var s_in = 0;
for (var i = 10; i < 19; i++) {
    var fObj = document.getElementById(field+'_'+i);
    var text = fObj.value;
    if (text) {
        var s = parseInt(text);
        var pattern = /^[+-]?(\d*\.)?\d+$/;
        var result;
        if ((result = pattern.exec(text)) != null) {
            if (s > -1) {
                s_in += s;
            }
        } else {  // not empty and not a number
            alert('The entry for Hole ' + i + ' ' + ucfirst(field) + ' is "' + text + '" This is not a number. It will be erased now.');
            fObj.value = '';
            fObj.focus();
            return false;
        }
    }
}
4

1 に答える 1

3

正規表現には小数点の後に 1 つ以上の数字が必要-であり、最初のグループでエスケープする必要があります)。小数点以下の数字を必要としない場合は、これを使用できます (a+を a に変更し、の前に*置きます)。\-

/^[+\-]?(\d*\.)?\d*$/
于 2012-12-17T18:25:46.180 に答える