Este código no funciona en Internet Explorer. ¿Alguna alternativa?
"abcde".includes("cd")
javascript
Carlosss
fuente
fuente
Respuestas:
String.prototype.includes
mientras escribe, no es compatible con Internet Explorer (u Opera).En su lugar, puede utilizar
String.prototype.indexOf
.#indexOf
devuelve el índice del primer carácter de la subcadena si está en la cadena; de lo contrario, devuelve-1
. (Muy parecido al equivalente de Array)MDN tiene un polyfill para
includes
usarindexOf
: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes#PolyfillEDITAR: Opera admite a
includes
partir de la versión 28 .EDITAR 2: las versiones actuales de Edge admiten el método. (a partir de 2019)
fuente
Boolean
, podemos(myString.indexOf('string') > -1) // to get a boolean true or false
O simplemente ponga esto en un archivo Javascript y tenga un buen día :)
fuente
for...in
, iteraráString.prototype.includes
si se define así.return this.indexOf(str) !== -1;
incluye () no es compatible con la mayoría de los navegadores. Tus opciones son usar
-polyfill de MDN https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes
o para usar
-índice de()
Lo que te da n = 2
Esto está ampliamente respaldado.
fuente
for...in
! , se repetiráString.prototype.includes
si lo define así.Problema:
Intente ejecutar a continuación (sin solución) desde Internet Explorer y vea el resultado.
Solución:
Ahora ejecute la siguiente solución y verifique el resultado
fuente
Este puede ser mejor y más corto:
fuente
Tuve el mismo problema cuando trabajaba en Angular 5. Para que funcione directamente sin escribir un polyfill usted mismo, simplemente agregue la siguiente línea al archivo polyfills.ts:
Además, la
tsconfig.json
sección lib puede ser relevante:fuente
Para reaccionar:
Resolución de problemas para: incluye (), buscar (), etc.
fuente
Si desea seguir usando
Array.prototype.include()
en javascript, puede usar este script: github-script-ie-include Eso convierte automáticamente la función include () en la función match () si detecta IE.Otra opción es usar siempre el
string.match(Regex(expression))
fuente
Esto funciona para mi:
fuente
Puedes hacer lo mismo con !! y ~ operadores
aquí está la explicación de los dos operadores (!! y ~)
Cuál es el !! (no no) operador en JavaScript?
https://www.joezimjs.com/javascript/great-mystery-of-the-tilde/
fuente