441

stringaに数字のみが含まれているかどうかを確認したい。私はこれを使用しました:

var isANumber = isNaN(theValue) === false;

if (isANumber){
    ..
}

しかし、それも可能であることに気付きまし+-. input基本的に、数字のみが含まれ、他の文字が含まれていないことを確認したいと思います。+100-5はどちらも数値であるためisNaN()、正しい方法ではありません。おそらく正規表現が必要ですか?任意のヒント?

4

14 に答える 14

894

どうですか

let isnum = /^\d+$/.test(val);
于 2009-11-22T15:26:24.100 に答える
87
string.match(/^[0-9]+$/) != null;
于 2009-11-22T15:26:55.727 に答える
21
String.prototype.isNumber = function(){return /^\d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false
于 2009-11-22T21:25:22.617 に答える
7

これはあなたが望むものです

function isANumber(str){
  return !/\D/.test(str);
}
于 2016-12-18T07:11:25.507 に答える
7

正規表現を使用しないソリューションは次のとおりです。

function onlyDigits(s) {
  for (let i = s.length - 1; i >= 0; i--) {
    const d = s.charCodeAt(i);
    if (d < 48 || d > 57) return false
  }
  return true
}

ここで、48 と 57 はそれぞれ「0」と「9」の文字コードです。

于 2018-06-28T14:11:22.810 に答える
2

次の正規表現を使用できます。

^\d+$
于 2009-11-22T15:26:42.373 に答える
-2
c="123".match(/\D/) == null #true
c="a12".match(/\D/) == null #false

文字列に数字のみが含まれている場合、null が返されます

于 2019-07-25T09:04:09.623 に答える