Étant assez nouveau dans JavaScript, je suis incapable de discerner quand utiliser chacun d'eux.
Quelqu'un peut-il m'aider à clarifier cela pour moi?
javascript
string
Colin Brock
la source
la source
search
évaluera une chaîne dans une regex même si vous ne le souhaitez pas."hello.".search(".")
- il renvoie 0, pas 5 parce que.
c'est le jeton regex pour "n'importe quel caractère"indexOf
est pour les sous-chaînes simples,search
est pour les expressions régulières.la source
La fonction de recherche ( une description ici ) prend une expression régulière, qui vous permet de faire une correspondance avec des modèles plus sophistiqués, des chaînes insensibles à la casse, etc., tandis que indexOf ( une description ici ) correspond simplement à une chaîne littérale. Cependant, indexOf vous permet également de spécifier un index de début.
la source
Je pense que la principale différence est que la recherche accepte les expressions régulières.
Vérifiez cette référence:
la source
IndexOf () - il accepte les chaînes littérales ou les objets chaîne mais pas les expressions régulières. Il accepte également une valeur entière de base zéro pour démarrer sa recherche, par exemple:
Search () - accepte à la fois les chaînes littérales ou les objets chaîne et les expressions régulières. Mais il n'accepte pas d'index pour démarrer la recherche.
la source
"baby/e/lephant".indexOf(m);
?indexOf () et search ()
commun aux deux
i) renvoie la première occurrence de la valeur recherchée
ii) renvoie -1 si aucune correspondance n'est trouvée
spécial dans indexOf ()
i) vous pouvez donner la position de recherche de départ comme deuxième argument
la valeur de recherche peut être une expression régulière
référence
la source
La recherche trouve sa correspondance avec une expression régulière, mais n'a pas de décalages. IndexOf utilise des littéraux pour correspondre, mais a un décalage.
Indice de
Chercher
la source
Sans regex , il n'y a pas de différence pratique entre indexOf et search .
L'exemple ci-dessous donne une démo en direct :
la source
search
convertit une chaîne en aRegExp
, par exemple,str.search("d........e");
correspondra également au caractère 39.