Tengo una cadena de palabras clave que contiene al menos 1 letra comodín; "?". Cada "?" representa una sola letra minúscula entre az. Necesito buscar a través de una serie de cadenas para encontrar qué letras coinciden con la palabra clave.
let input = ["happy", "have", "harvest", "harmonica"] let keyword = "ha???" result = "happy"¿He intentado reemplazar la letra comodín? con expresiones regulares, pero parece que no funciona porque devolvería "ha/([az])+/g" y no se compararía como yo quería.
También traté de simplemente reemplazar? con "", pero obviamente coincidiría con todos los elementos, por lo que no funciona.
¿Hay alguna sugerencia?
Podrías simplemente reemplazar ? con [az] , y agregue el inicio y el final de los anclajes de cadena ( ^ y $ ) a su expresión regular. Por ejemplo:
const input = ["happy", "have", "harvest", "harmonica"] const keyword = "ha???" const regex = new RegExp('^' + keyword.replace(/\?/g, '[az]') + '$') const result = input.filter(w => regex.test(w)) console.log(result)