Estoy tratando de resolver este problema en mecanografiado (Angular 12):
Quiero encontrar la palabra tempor en la siguiente cadena ( tempor es solo un ejemplo, puede ser cualquier palabra):
<p>Lorem ipsum dolor sit <em>amet</em>, consectetur adipiscing elit, sed do eiusmod te<b>m</b>por incididunt ut labore et dolore magna aliqua.</p> El problema es que la palabra can contiene cualquier código html dentro, Ej: te<b>m</b>por , <em>tem</em>por , tem<a>por<a/> , etc.
Además, no puedo usar expresiones regulares, porque una palabra puede contener cualquier html dentro y consideramos un número infinito de palabras que el usuario puede ingresar, por lo tanto, no es posible usar expresiones regulares como patrón.
Estaba buscando algunos npm pero no pude encontrar nada que pueda resolver el problema.
En resumen, necesito encontrar la palabra sin las etiquetas html, pero también necesito preservar el html en términos de representar el estilo, algunas reglas comerciales, etc.
Alguien sabe como solucionarlo o conoce algun npm que me pueda ayudar?
Gracias por adelantado.
element.textContent te da solo texto sin etiquetas. Puede encontrar la cadena deseada: element.textContent.indexOf('tempor') !== -1
Puedes probar de esta manera.
let text = document.querySelector('p')?.textContent; console.log(text?.search('tempor'));//72