Tengo una cadena JS de esta forma:
const pageContent = "He stood up and asked the teacher, "Can you elaborate the last point please? ". Quiero asignar las palabras a una página y representarlas en una vista de modo que se pueda hacer clic en las palabras. ¿Hay alguna manera de extraer porciones de la cadena usando el índice de palabras de modo que no se pueda hacer clic en los signos de puntuación que aparecen antes y después de las palabras, pero sí en las palabras? Por ejemplo, se puede hacer clic en la palabra Can , pero no en "Can ?
PD: no puedo usar la función de división para convertir la cadena en una matriz y mapearla, ya que esto puede provocar fallas en algunos casos extremos y altera el flujo de texto cuando se vuelve a convertir en una cadena. Tengo los índices de todas las palabras en una matriz separada con el índice inicial y final de cada palabra en la cadena y quiero usarlos.
Cualquier ayuda es muy apreciada
Simplemente use dos bucles for y verifique si la palabra coincide con alguna de las palabras en la matriz de palabras excluidas
const pageContent = 'He stood up and asked the teacher, "Can you elaborate the last point please?", Can you elaborate the last point please? ' const indexes = [ [35, 39], [9, 11] ] const excluded_words = ['"Can'] for (let i = 0, len = indexes.length; i < len; i++) { const word = pageContent.substring(indexes[i][0], indexes[i][1]); for (let i = 0, len = excluded_words.length; i < len; i++) { if (word.indexOf(excluded_words[i]) > -1) { console.log(word, " is excluded"); break; } if (i === len - 1) { console.log(word, " is included") } } }