Ich muss prüfen, ob justPrices[i].substr(commapos+2,1)
.
Die Saite ist so etwas wie: "blabla, 120"
In diesem Fall würde geprüft, ob '0' eine Zahl ist. Wie kann das gemacht werden?
javascript
lisovaccaro
quelle
quelle
Antworten:
Sie können Vergleichsoperatoren verwenden, um festzustellen, ob sie im Bereich der Ziffern liegen:
quelle
Sie können entweder verwenden
parseInt
und dann mit überprüfenisNaN
oder wenn Sie direkt an Ihrem String arbeiten möchten, können Sie Regexp wie folgt verwenden:
quelle
function is_numeric_char(c) { return /\d/.test(c); }
is_numeric_char("foo1bar") == true
. B. ). Wenn Sie nach einem numerischen Zeichen suchen/^\d$/.test(c)
möchten, ist dies eine bessere Lösung. aber es war sowieso nicht die Frage :)BEARBEITEN: Die aktualisierte Antwort von Blender ist hier die richtige Antwort, wenn Sie nur ein einzelnes Zeichen überprüfen (nämlich
!isNaN(parseInt(c, 10))
) . Meine Antwort unten ist eine gute Lösung, wenn Sie ganze Zeichenfolgen testen möchten.Hier ist die
isNumeric
Implementierung von jQuery (in reinem JavaScript), die gegen vollständige Zeichenfolgen funktioniert :Der Kommentar für diese Funktion lautet:
Ich denke, wir können darauf vertrauen, dass diese Jungs ziemlich viel Zeit damit verbracht haben!
Kommentierte Quelle hier . Super Geek Diskussion hier .
quelle
Ich frage mich, warum niemand eine Lösung veröffentlicht hat wie:
mit einem Aufruf wie:
quelle
Sie können dies verwenden:
Hier habe ich es mit der akzeptierten Methode verglichen: http://jsperf.com/isdigittest/5 . Ich hatte nicht viel erwartet, also war ich ziemlich überrascht, als ich herausfand, dass die akzeptierte Methode viel langsamer war.
Interessant ist, dass die akzeptierte Methode zwar eine schnellere korrekte Eingabe (z. B. '5') und eine langsamere für falsche (z. B. 'a') ist, meine Methode jedoch genau umgekehrt ist (schnell für falsch und langsamer für korrekt).
Im schlimmsten Fall ist meine Methode jedoch 2-mal schneller als die akzeptierte Lösung für korrekte Eingaben und über 5-mal schneller für falsche Eingaben.
quelle
!!([!0, !0, !0, !0, !0, !0, !0, !0, !0, !0][n]);
Es hat großes WTF-Potenzial und funktioniert ganz gut (schlägt fehl für007
)."length"
(und anderen Attributen, die auf Arrays gefunden werden) sind Ziffern: PIch denke, es macht sehr viel Spaß, Wege zu finden, um dies zu lösen. Unten sind einige.
(Alle folgenden Funktionen setzen voraus, dass das Argument ein einzelnes Zeichen ist. Ändern Sie zu
n[0]
, um es zu erzwingen.)Methode 1:
Methode 2:
Methode 3:
Methode 4:
Methode 5:
Teststring:
quelle
true
für aus" "
.charCodeAt()
Vergleich hinzugefügt - der fast 4x schneller war - jsperf.com/isdigit3Einfache Funktion
quelle
Wenn Sie einzelne Zeichen testen, dann:
gibt true oder false zurück, je nachdem, ob c eine Ziffer ist oder nicht.
quelle
Ich schlage eine einfache Regex vor.
Wenn Sie nur nach dem letzten Zeichen in der Zeichenfolge suchen:
Und der reguläre Ausdruck ist noch einfacher, wenn Sie nur ein einzelnes Zeichen als Eingabe überprüfen:
quelle
Die kürzeste Lösung ist:
Sie können diese auch anwenden:
Wenn Sie mehr als 1 Chat-Zeichen überprüfen möchten, können Sie die nächsten Varianten verwenden
Regulären Ausdruck:
Vergleich:
Überprüfen Sie, ob es sich nicht um NaN handelt
quelle
quelle
Ausgabe ohne strengen Modus:
Ausgabe im strengen Modus:
quelle
Versuchen:
quelle
Das scheint zu funktionieren:
Statische Bindung:
Prototypbindung:
Es werden sowohl einzelne Zeichen als auch ganze Zeichenfolgen überprüft, um festzustellen, ob sie numerisch sind.
quelle
Quelle
quelle
Quellcode
quelle
Sie können dies versuchen (in meinem Fall funktioniert)
Wenn Sie testen möchten, ob das erste Zeichen einer Zeichenfolge ein int ist:
Wenn Sie testen möchten, ob das Zeichen ein int ist:
quelle
Diese Funktion funktioniert für alle Testfälle, die ich finden konnte. Es ist auch schneller als:
quelle
Soweit ich weiß, ist der einfachste Weg, einfach zu multiplizieren mit
1
:Die Multiplikation mit eins ergibt eine Zahl aus einer beliebigen numerischen Zeichenfolge (da Sie nur ein Zeichen haben, ist dies immer eine Ganzzahl von 0 bis 9) und eine
NaN
für eine andere Zeichenfolge.quelle
Ähnlich wie bei einer der obigen Antworten habe ich verwendet
Dieser Blogpost beleuchtet diese Prüfung, ob eine Zeichenfolge in Javascript | numerisch ist Typoskript & ES6
quelle
Eine einfache Lösung, bei der die dynamische Typprüfung der Sprache genutzt wird:
siehe Testfälle unten
Code-Snippet anzeigen
quelle
Benutz einfach
isFinite
quelle