Tengo una cadena que contiene etiquetas html y texto no deseados, por lo que quiero eliminar el texto coincidente no deseado y obtener los valores requeridos:
Código:
var mystring = "<!-- html-text: 143 --> value 1 <!-- /html-text --><!-- html-text: 144 --> | <!-- /html-text --><!-- react-text: 145 --> value 3 <!-- /html-text --><!-- html-text: 146 -->, <!-- /html-text --><!-- html-text: 147 --> value 2 <!-- /html-text --><!-- html-text: 148 --> <!-- /html-text --><!-- html-text: 149 -->value 4 <!-- /html-text -->"; mystring = mystring.replace('<!-- html-text: 143 -->',''); console.log('str'+mystring);Salida requerida:
value 1 value 2 value 3 value 4Puedes hacer esto con expresiones regulares:
var mystring = "<!-- html-text: 143 --> value 1 <!-- /html-text --><!-- html-text: 144 --> | <!-- /html-text --><!-- react-text: 145 --> value 3 <!-- /html-text --><!-- html-text: 146 -->, <!-- /html-text --><!-- html-text: 147 --> value 2 <!-- /html-text --><!-- html-text: 148 --> <!-- /html-text --><!-- html-text: 149 -->value 4 <!-- /html-text -->"; mystring = mystring.replace(/<!--.*?-->/g,''); console.log(mystring);Explicación de expresiones regulares:
<!--...--> Marca la apertura y el final de un comentario HTML.* Coincide con cualquier carácter cero o más veces? Eliminar la "coincidencia codiciosa" (coincidir con la menor cantidad posible en lugar de la mayoría)g Global, lo que significa reemplazar todas las ocurrencias en lugar de solo una