es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Buscando una alternativa para String.matchAll en js

Estoy intentando utilizar matchAll así:

const regexp = /t(e)(st(\d?))/g;
const str = 'test1test2';
const array = [...str.matchAll(regexp)];

pero obtengo un error:

matchall no es una función o su valor de retorno no es iterable

Quizás mi navegador o versión de js no lo soporte. ¿Pero qué alternativa tengo para matchAll en versiones anteriores?

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Si matchAll no está disponible en tu versión de JavaScript o navegador, puedes usar exec en su lugar. Aquí tienes un ejemplo:

    const regexp = /t(e)(st(\d?))/g;
    const str = 'test1test2';
    let match;
    let array = [];
    
    while ((match = regexp.exec(str)) !== null) {
      array.push(match);
    }
    
    console.log(array);
    

    Esto debería producir la misma salida que al usar matchAll. Ten en cuenta que exec debe ser llamado en un bucle para obtener todos los coincidencias. Además, las coincidencias se devuelven en un formato ligeramente diferente que matchAll, por lo que es posible que debas ajustar tu código en consecuencia.

Comments are closed.