javascript number - Überprüfen Sie, ob die Zeichenfolge nur Ziffern enthält



precision tofixed (6)

Das ist, was du willst

function isANumber(str){
  return !/\D/.test(str);
}

Ich möchte überprüfen, ob eine Zeichenfolge nur Ziffern enthält. Ich habe das benutzt:

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

if (isANumber){
    ..
}

.. aber realisiert, dass es auch + und - erlaubt. Grundsätzlich möchte ich sicherstellen, dass die Eingabe NUR Ziffern und keine anderen Buchstaben enthält. Da +100 und -5 beide Zahlen sind, isNaN, ist nicht der richtige Weg. Vielleicht brauche ich eine Regexp? Irgendwelche Tipps?


string.match(/^[0-9]+$/) != null;

Wenn Sie sogar Float-Werte (Dot-separated-Werte) unterstützen möchten, können Sie diesen Ausdruck verwenden:

var isNumber = /^\d+\.\d+$/.test(value);

Nun, Sie können den folgenden Regex verwenden:

^\d+$

String.prototype.isNumber = function(){return /^\d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false

Die ersten Antworten gehen von primitiven Typen aus. Wenn Sie jedoch herausfinden möchten, ob ein Array ein Objekt mit bestimmten Merkmalen enthält, ist Array.prototype.some() eine sehr elegante Lösung:

const items = [ {a: '1'}, {a: '2'}, {a: '3'} ]

items.some(item => item.a === '3')  // returns true
items.some(item => item.a === '4')  // returns false

Das Schöne daran ist, dass die Iteration abgebrochen wird, sobald das Element gefunden wurde, sodass unnötige Iterationszyklen gespeichert werden.

Außerdem passt es gut in eine if -Anweisung, da es einen Booleschen Wert zurückgibt:

if (items.some(item => item.a === '3')) {
  // do something
}

* Wie jamess in dem Kommentar darauf hinweist, wird Array.prototype.some() heute, September 2018, vollständig unterstützt: caniuse.com-Supporttabelle





javascript numbers digits