Quelle est la différence entre indexOf() et de recherche()?
Étant relativement nouveau pour le JavaScript, je suis incapable de discerner lors de l'utilisation de chacune de ces.
Quelqu'un peut-il aider à clarifier cela pour moi?
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin d'une expression régulière, l'utilisation
search()
. Sinon,indexOf()
va être plus rapide.search
permettra d'évaluer une chaîne de caractères dans une expression régulière, même si vous ne le souhaitez pas."hello.".search(".")
- elle retourne 0, pas 5 parce que.
est la regex jeton pour "n'importe quel caractère"indexOf
est de la plaine de sous-chaînes,recherche
est pour les expressions régulières.La fonction de recherche (une description ici) prend une expression régulière, ce qui permet de match contre plus sophistiqués des modèles, de la casse des chaînes, etc., alors que indexOf ( une description ici ), il suffit correspond à une chaîne littérale. Cependant, indexOf vous permet également de spécifier un début d'indice.
Je pense que la principale différence est que la recherche d'accepter des expressions régulières.
Vérifier cette référence:
IndexOf() - il accepte les littéraux de chaîne ou une chaîne d'objets, mais pas des expressions régulières. Il accepte également un entier de base zéro de la valeur de départ de sa recherche, par exemple:
commence à partir de la 6ème ou 5ème index.
accepte des expressions régulières.
De recherche() - accepte à la fois les littéraux de chaîne ou une chaîne d'objets et d'expressions régulières. Mais il n'a pas accepte un indice pour démarrer la recherche de.
"baby/e/lephant".indexOf(m);
?indexOf() et de recherche()
commun dans les deux
i) de retour de la première occurrence de recherché valeur
ii) renvoie -1 si aucune correspondance trouvée
spécial dans indexOf()
i) vous pouvez donner à partir de la position de recherche comme deuxième argument
de recherche de valeur peut être l'expression régulière
référence
Recherche trouve ça correspond à une expression régulière, mais n'a pas de décalages. IndexOf utilise les littéraux de match, mais a un décalage.
IndexOf
Recherche
Sans regex, il n'y a pas de différence pratique entre indexOf et recherche.
L'exemple ci-dessous donne un live démo:
JS:
HTML:
search
convertit une chaîne en unRegExp
, ainsi, par exemple,str.search("d........e");
sera également correspondre au personnage 39.