2

テキストボックスのエントリを検証する必要があります。バインド中にユーザーがこのフィールドに文字を入力すると、entityframeworkが失敗するため、整数のみを許可する必要があります。

ここに問題があります:

ユーザー10-dがこのフィールドに入力すると、数値としてparseFloat戻り、残りの値は無視されます。IMO中は、入力テキストをfloatに変換できないため、NANエラーをスローする必要があります。true10

以下のサンプルをご覧になり、遊んでみてください。 http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_parsefloat

上記の例で40年間NANを入力することに興味があります。

document.write(parseFloat("40 years") + "<br />");

さらに検証が必要な場合はお知らせください。

4

2 に答える 2

4

機能を使いたいようですisNaN

isNaN('40'); //false, as '40' is a number
isNaN('40 years'); //true, as '40 years' is not a number

アップデート

前述のように、これは整数をチェックしません。そのために、あなたは使用することができます

function isInt(value) { 
  return !isNaN(value) && value % 1 === 0; 
}

これは、"40"、40、"40" に対して true を返します。"40-d"、"40.12"、40.12、"40 年" の場合は false。

jsFiddle デモ

末尾の小数点が必要ない場合は、@ jakeclarksonの正規表現ソリューションの方が優れています

于 2012-06-26T14:20:09.413 に答える
2

整数のみを許可する場合は、次を使用できます。

function isInteger(str) {
    return /^[0-9]*$/.test(str);
}

isNaN小数を指定すると返さfalseれます。つまり、

isNaN("3.14"); // false, i.e. it is a number

上記isInteger() functionは正しく機能しますが、つまり

isInteger("3.14"); // false
于 2012-06-26T14:24:25.780 に答える