Este código não funciona no Internet Explorer. Alguma alternativa?
"abcde".includes("cd")
javascript
Carlosss
fonte
fonte
Respostas:
String.prototype.includes
enquanto você escreve, não é compatível com o Internet Explorer (ou Opera).Em vez disso, você pode usar
String.prototype.indexOf
.#indexOf
retorna o índice do primeiro caractere da substring se estiver na string; caso contrário, retorna-1
. (Muito parecido com o equivalente de Array)MDN tem um polyfill para
includes
usarindexOf
: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes#PolyfillEDIT: Opera suporta a
includes
partir da versão 28 .EDIT 2: As versões atuais do Edge suportam o método. (a partir de 2019)
fonte
Boolean
, podemos(myString.indexOf('string') > -1) // to get a boolean true or false
Ou apenas coloque isso em um arquivo Javascript e tenha um bom dia :)
fonte
for...in
, ela irá iterarString.prototype.includes
se for definida assim.return this.indexOf(str) !== -1;
includes () não é compatível com a maioria dos navegadores. Suas opções são usar
-polyfill do MDN https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes
ou para usar
-índice de()
O que dá a você n = 2
Isso é amplamente suportado.
fonte
for...in
! , ele irá iterarString.prototype.includes
se você definir assim.Problema:
Experimente executar abaixo (sem solução) no Internet Explorer e veja o resultado.
Solução:
Agora execute a solução abaixo e verifique o resultado
fonte
Este pode ser melhor e mais curto:
fonte
Eu tive o mesmo problema ao trabalhar no Angular 5. Para fazê-lo funcionar diretamente sem escrever um polyfill você mesmo, basta adicionar a seguinte linha ao arquivo polyfills.ts:
Além disso, a
tsconfig.json
seção lib pode ser relevante:fonte
Para reagir:
Resolução de problemas para - inclui (), localizar () e assim por diante ..
fonte
Se você quiser continuar usando o
Array.prototype.include()
em javascript, você pode usar este script: github-script-ie-include Isso converte automaticamente a função include () em match () se detectar o IE.Outra opção é usar sempre o
string.match(Regex(expression))
fonte
Funciona para mim:
fonte
Você pode fazer o mesmo com !! e ~ operadores
aqui está a explicação dos dois operadores (!! e ~)
O que é !! (não) operador em JavaScript?
https://www.joezimjs.com/javascript/great-mystery-of-the-tilde/
fonte