Este será el HTML que lea el archivo donde tengo el problema:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Dudas y aclaraciones. </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="Authors" content="KY." /> <meta name="Description" content="Dudas y aclaraciones." /> <meta name="Foros de ayuda" content="Foros del Web." /> <meta name="Colaboradores" content="KY." /> <meta name="Clase JS HTML" content="KY." /> <meta name="Foros de ayuda para la clase JS HTML" content="Foros del Web." /> <meta name="Colaboradores para la clase JS HTML" content="KY." /> <script src="dudas.js" language="JavaScript 1.2" type="text/javascript"> </script> </head> <body> </body> </html>
Código Javascript:
Ver original
// Clase para almacenar todo lo relacionado con la duda. function HTML(){ // Texto de ejemplo conforme a la tarea que se quiere realizar. this.HTML_de_pruebas='<div id="cosa"><div id="Cosa_Nivel1_Numero1"></div><div id="Cosa_Nivel1_Numero2"><div id="Cosa_Nivel1_Numero2_Nivel2_Numero1"></div><div id="Cosa_Nivel1_Numero2_Nivel2_Numero2"></div></div><div id="Cosa_Nivel1_Numero3"></div><div id="Cosa_Nivel1_Numero4"></div><div id="Cosa_Nivel1_Numero5"></div></div>'; // Función que crea una capa de trabajo para visualizar ejemplos. this.Crear_capa_de_trabajo=function(Capa,Nombre,Tipo_de_cajon){ var Div=document.createElement(Tipo_de_cajon); Div.id=Nombre; Capa.appendChild(Div) } // Función que permite verificar el funcionamiento de la base. this.Prueba_de_funcionamiento=function(HTML,Capa_de_trabajo){ var Capa=document.getElementById(Capa_de_trabajo), Contador=0, Contenido=""; HTML.replace(/.{3}/g,function(Patron,Posicion){ Contenido+="Elemento encontrado número "+Contador+":\rPatrón seleccionado: "+Patron+"\rNúmero de caracteres del Patrón: "+Patron.length+"\rPosición dentro del String HTML: "+Posicion+"\r\r"; Contador++ }); Capa.innerHTML=Contenido } // Función que intenta dividir cada una de las pestañas HTML para visualizarlas individualmente (No pasa esto, jeje). this.Dividir_y_mostrar_parametros=function(HTML,Capa_de_trabajo){ var Capa=document.getElementById(Capa_de_trabajo), Contador=0, Contenido=""; HTML.replace(/\<.*>/g,function(Patron,Posicion){ Contenido+="Elemento encontrado número "+Contador+":\rPatrón seleccionado: "+Patron+"\rNúmero de caracteres del Patrón: "+Patron.length+"\rPosición dentro del String HTML: "+Posicion+"\r\r"; Contador++ }); Capa.innerHTML=Contenido } } HTML=new HTML; window.onload=function(){ HTML.Crear_capa_de_trabajo(document.getElementsByTagName("body")[0],"Ejemplo","textarea"); HTML.Dividir_y_mostrar_parametros(HTML.HTML_de_pruebas,"Ejemplo") }
Este archivo contiene una clase la cual contiene la duda y las posibles soluciones de cada uno de los que participen en ello.
El caso es que ahí especifico una función que en PHP con ese mismo formato de Regular Expresions me divide el String con respecto a cada una de las pestañas (Ya sean de apertura, o de cierre) de manera individual. Sin embargo, aquí me expone el texto completo como si hiciera una búsqueda desde el principio con el primer valor, y luego desde el final para el último valor, englobándome todo como si fuera un único resultado de búsqueda. ¿Qué estoy haciendo mal? Llevo semanas buscando información y no encuentro nada relativo. Aun soy muy nuevo con el tema de las Expresiones Regulares. ¿Se os ocurre alguna idea?. Gracias.
Duda resuelta. El caso es que no puedes buscar cualquier elemento dentro del rango de búsqueda, sino que debes limitar la búsqueda a cualquier elemento que no esté incluído en el final del rango de búsqueda. Gracias.