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.

¿Existe una expresión regex para reemplazar esta condición if?

Tengo tres cadenas (strings) y necesito comprobar si una de ellas contiene las otras dos en el mismo orden dados. Actualmente estoy utilizando muchas condiciones para lograr esto, ¿hay alguna manera de simplificarlo utilizando regex?

Aquí está el código:

var a = '';
var b = '##';
var phrase = 'Lorem ipsum dolor sit amet##';

if(phrase.includes(a) && phrase.includes(b) && (phrase.indexOf(a) < phrase.indexOf(b))) {
  // agregar lógica
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible simplificar el código utilizando regex. Puede usar el método test de una expresión regular para verificar si las tres cadenas están presentes y en el orden correcto. Aquí hay un ejemplo:

    var a = '**';
    var b = '##';
    var phrase = '**Lorem ipsum dolor sit amet##';
    
    var regex = new RegExp(a + '.*' + b);
    
    if (regex.test(phrase)) {
      // agregar lógica
    }
    

    El .* en la expresión regular coincide con cualquier carácter (excepto los terminadores de línea) entre a y b. Esto asegura que se mantenga el orden de las cadenas. El método test devuelve true si la expresión regular coincide con la cadena y false en caso contrario. Esta es una forma más concisa y legible de verificar si las tres cadenas están presentes y en el orden correcto.

Comments are closed.