Da ich in JavaScript ziemlich neu bin, kann ich nicht erkennen, wann ich diese verwenden soll.
Kann mir jemand helfen, das zu klären?
javascript
string
Colin Brock
quelle
quelle
search
wird eine Zeichenfolge in einen regulären Ausdruck ausgewertet, auch wenn Sie dies nicht möchten."hello.".search(".")
- es gibt 0 zurück, nicht 5, weil.
das Regex-Token für "jedes Zeichen" istindexOf
steht für einfache Teilzeichenfolgen,search
steht für reguläre Ausdrücke.quelle
Die Suchfunktion ( eine Beschreibung hier ) verwendet einen regulären Ausdruck, mit dem Sie mit komplexeren Mustern, Zeichenfolgen ohne Berücksichtigung der Groß- und Kleinschreibung usw. übereinstimmen können, während indexOf ( eine Beschreibung hier ) einfach mit einer Literalzeichenfolge übereinstimmt. Mit indexOf können Sie jedoch auch einen Anfangsindex angeben.
quelle
Ich denke, der Hauptunterschied besteht darin, dass die Suche reguläre Ausdrücke akzeptiert.
Überprüfen Sie diese Referenz:
quelle
IndexOf () - akzeptiert Zeichenfolgenliterale oder Zeichenfolgenobjekte, jedoch keine regulären Ausdrücke. Es akzeptiert auch einen auf Null basierenden ganzzahligen Wert, von dem aus die Suche gestartet werden soll, z.
Search () - akzeptiert sowohl String-Literale oder String-Objekte als auch reguläre Ausdrücke. Es wird jedoch kein Index akzeptiert, von dem aus die Suche gestartet werden kann.
quelle
"baby/e/lephant".indexOf(m);
?indexOf () und search ()
gemeinsam in beiden
i) das erste Auftreten des gesuchten Werts zurückgeben
ii) Rückgabe -1, wenn keine Übereinstimmung gefunden wurde
speziell in indexOf ()
i) Sie können die Startsuchposition als zweites Argument angeben
Der Suchwert kann ein regulärer Ausdruck sein
Referenz
quelle
Die Suche findet Übereinstimmungen mit einem regulären Ausdruck, hat jedoch keine Offsets. IndexOf verwendet übereinstimmende Literale, hat jedoch einen Offset.
Index von
Suche
quelle
Ohne Regex gibt es keinen praktischen Unterschied zwischen indexOf und search .
Das folgende Beispiel zeigt eine Live- Demo :
quelle
search
Konvertiert eine Zeichenfolge in eineRegExp
, so dass sie beispielsweisestr.search("d........e");
auch mit Zeichen 39