0

ユーザーがテキストボックスに数値のみを許可できるようにする必要があります。非数値メソッドを削除する必要があります。入力方法に関係なく、入力またはコピーと貼り付けのいずれかです。

私のコード

var nCheck  = function (field) {
var re = /^[0-9]*$/;
               if (!re.test(field.value)) {

                       field.value = field.value.replace(/[^0-9]*$/g,"");
               }
 };

これは、 aaa2 のようなものをコピーして貼り付ける場合を除いて機能します。一方、aaaa または aa は機能します。問題は、最後の場所に数字が含まれている場合に失敗することです。

助けてくれてありがとう。

4

4 に答える 4

4

やるだけ

field.value = field.value.replace(/[^0-9]/g,"");

これにより、数値ではないものはすべて無意味に置き換えられ、test関数を実行する必要さえありません。

于 2012-04-05T13:57:30.393 に答える
2

$「文字列の終わり」を意味します。それを削除すると、動作するはずです。

その他のヒント:

*で置き換え+ます。*空文字列を含む

数字がタイプミスの場合に備えて (1 ではなく Q を押すなど)、ユーザーに警告する方がよいかもしれません。

于 2012-04-05T13:59:02.407 に答える
0

正規表現なし:

field.value = isNaN(field.value) ? '' : field.value;
于 2012-04-05T14:00:45.413 に答える
0

jQuery を使用している場合は、jquery 数値プラグインであるtextolaを確認してください。

于 2012-04-05T13:57:05.040 に答える