Sendo relativamente novo no JavaScript, não consigo discernir quando usar cada um deles.
Alguém pode ajudar a esclarecer isso para mim?
javascript
string
Colin Brock
fonte
fonte
search
avaliará uma string em uma regex, mesmo que você não queira."hello.".search(".")
- ele retorna 0, não 5, porque.
é o regex token para "qualquer caractere"indexOf
é para substrings simples,search
é para expressões regulares.fonte
A função de pesquisa ( uma descrição aqui ) usa uma expressão regular, que permite comparar com padrões mais sofisticados, seqüências que não diferenciam maiúsculas de minúsculas etc., enquanto indexOf ( uma descrição aqui ) simplesmente corresponde a uma sequência literal. No entanto, indexOf também permite especificar um índice inicial.
fonte
Eu acho que a principal diferença é que a pesquisa aceita expressões regulares.
Verifique esta referência:
fonte
IndexOf () - aceita literais de string ou objetos de string, mas não expressões regulares. Ele também aceita um valor inteiro baseado em zero para iniciar sua pesquisa, por exemplo:
Search () - aceita literais de string ou objetos de string e expressões regulares. Mas ele não aceita um índice para iniciar a pesquisa.
fonte
"baby/e/lephant".indexOf(m);
?indexOf () e search ()
comum em ambos
i) retorna a primeira ocorrência do valor pesquisado
ii) retorne -1 se nenhuma correspondência for encontrada
especial em indexOf ()
i) você pode indicar a posição inicial da pesquisa como um segundo argumento
valor da pesquisa pode ser expressão regular
referência
fonte
A pesquisa encontra suas correspondências com uma expressão regular, mas não possui deslocamentos. IndexOf usa literais para corresponder, mas tem um deslocamento.
Índice de
Procurar
fonte
Sem uma regex , não há diferença prática entre indexOf e pesquisa .
O exemplo abaixo fornece uma demonstração ao vivo :
fonte
search
converte uma string em umRegExp
, por exemplo,str.search("d........e");
também corresponderá no caractere 39.