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!