82

HTML と JavaScript のフォームを使用しています。ユーザーが文字を入力してクリックした場合にのみアラートがポップアップするようにしますsubmit

だから私はHTMLコードを持っています:

<form name="myForm" action="" onsubmit="return checkInp()" method="post">
    First name: <input type="text" name="age">
<input type="submit" value="Submit">   

そしてJavaScriptコード:

function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (x consists of any letters) // this is the code I need to change
{
alert("Must input numbers");
return false;
}
}
4

11 に答える 11

130

isNaN 関数を使用して、値が数値に変換されないかどうかを判断できます。以下の例:

function checkInp()
{
  var x=document.forms["myForm"]["age"].value;
  if (isNaN(x)) 
  {
    alert("Must input numbers");
    return false;
  }
}
于 2013-08-04T10:56:00.247 に答える
13

isNaN 関数を使用できます。データが数値でない場合は true を返します。それは次のようなものです。

function checkInp()
{
    var x=document.forms["myForm"]["age"].value;
    if (isNaN(x)) // this is the code I need to change
    {
        alert("Must input numbers");
        return false;
    }
}

注: isNan は 10.2 を有効な数値と見なします。

于 2013-08-04T10:54:32.657 に答える
4

より良い(エラーのない)コードは次のようになります。

function isReallyNumber(data) {
    return typeof data === 'number' && !isNaN(data);
}

これにより、空の文字列も処理されます。もう 1 つの理由は、isNaN("12")equals ですfalse"12"、数値ではなく文字列であるため、結果は になりtrueます。最後に、あなたが興味を持つかもしれないボーナス リンクです。

于 2015-12-13T17:01:08.960 に答える
4

これを試して:

if(parseInt("0"+x, 10) > 0){/* x is integer */}
于 2013-08-04T10:55:47.687 に答える
3

Number文字列を使用してオブジェクトを作成し、クラス自体isIntegerが提供する関数を使用しているかどうかを確認するのが最も簡単だと思います。Number

Number.isInteger(Number('1')) //true
Number.isInteger(Number('1 mango')) //false
Number.isInteger(Number(1)) //true
Number.isInteger(Number(1.9)) //false
于 2017-10-23T11:52:48.227 に答える
0

文字列からの数値ではなく実数を気にする場合、最良かつ現代的な方法は typeof (変数) です。例えば:

var a = 1;
var b = '1';

typeof a: // Output: "number"
typeof b: // Output: "string
于 2018-05-16T02:16:04.673 に答える