2016-03-28 16 views
0

Ich bin neu in JS - das könnte für Sie einfach zu beantworten sein. Ich habe auf dem regulären Ausdruck gelesen, aber kann mich nicht die volle Bedeutung dieses Codes aus:Javascript: regulärer Ausdruck und .test

Ich bin gebeten worden, eine myParseInt Methode mit den folgenden Regeln zu schreiben:

  • Es soll das machen Umwandlung, wenn der angegebene String nur einen einzelnen Integer-Wert (und schließlich Leerzeichen - einschließlich Tabs, Zeile Feeds ... - an beiden Enden enthält).
  • Für alle anderen Zeichenfolgen (einschließlich derjenigen, die Gleitkommawerte darstellen), sollte es NaN zurückgeben.
  • Es sollte davon ausgehen, dass alle Zahlen nicht signiert sind und geschrieben in Basis 10.

Die Antwort lautet:

function myParseInt (str) { return /^\s*\d+\s*$/ . test (str) ? + str : NaN; } 

(bitte korrigieren Sie mich, wenn ich falsch!) Aber ich sort Verstehen Sie den ersten und letzten Teil (/^\s* und \s*$), wo es den Anfang und das Ende der Str-Eingabe mit Leerraumzeichen übereinstimmt. Der \d+ Teil entspricht Ziffern 1 oder mehrmals.

Der .test(str) Teil entspricht den str mit dem angegebenen regulären Ausdrücken und gibt ihm ein wahren oder falschen Wert -

aber warum gibt es? nach .test(str), dann + str: NaN;? Ich bin mir nicht sicher, was die ? tut, die : Syntax. Ich weiß, dass es etwas zu tun hat, wenn es nicht passt, gibt NaN. Aber ich versuche, Erklärungen bezüglich der Syntax zu bekommen, die ich bei MDN nicht finden konnte.

Vielen Dank!

Antwort

Verwandte Themen