|  Respuesta: FAQ's del foro de ASP  
  Resaltar las porciones de código que están entre etiquetas 
Parecido a lo que hace este foro cuando usamos los highlight     
Código ASP:
 Ver original<%@LANGUAGE="VBSCRIPT"%><% Option Explicit %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/><title></title><style type="text/css">.contenedor {background: #EEEEEE;border:1px solid rgb(120,120,120);width:400px;overflow:auto;} #lenguaje {background: orange;font: 12px verdana;color: #000000;padding-left: 4px;width:100px;height:18px;} .contenido1, .contenido2 {font: 12px monospace;color: #000000;padding-top: 1px;padding-bottom: 1px;} .contenido1 {background: #FFFFFF;} .contenido2 {background: transparent;}</style></head><body><%Function EnvuelveCod(cadena)Dim Reg1, RempCorchete, Reg2, RempEtiquetas, Reg3, RempLengaje, arrlang, contador, arretiquetaDim enumeraYcolorea_linea, n, encabezado, array_codigo, i, resto, estilo, RempSaltoLinea ' Cambia caracteres especiales por sus entidades HTMLcadena = Server.HTMLEncode(cadena)cadena = Replace(cadena, "<", "<", 1, -1, 1)cadena = Replace(cadena, ">", ">", 1, -1, 1)cadena = Replace(cadena, "{", "{", 1, -1, 1)cadena = Replace(cadena, "}", "}", 1, -1, 1)cadena = Replace(cadena, "$", "$", 1, -1, 1)cadena = Replace(cadena, "%", "%", 1, -1, 1)cadena = Replace(cadena, "(", "(", 1, -1, 1)cadena = Replace(cadena, ")", ")", 1, -1, 1)cadena = Replace(cadena, "\", "\", 1, -1, 1)cadena = Replace(cadena, "|", "|", 1, -1, 1)cadena = Replace(cadena, ":", ":", 1, -1, 1)cadena = Replace(cadena, "?", "?", 1, -1, 1)cadena = Replace(cadena, "¿", "¿", 1, -1, 1)cadena = Replace(cadena, "!", "!", 1, -1, 1)cadena = Replace(cadena, "+", "+", 1, -1, 1)cadena = Replace(cadena, "*", "*", 1, -1, 1)cadena = Replace(cadena, ",", ",", 1, -1, 1)cadena = Replace(cadena, "-", "-", 1, -1, 1)cadena = Replace(cadena, "_", "_", 1, -1, 1)cadena = Replace(cadena, "=", "=", 1, -1, 1)cadena = Replace(cadena, "'", "'", 1, -1, 1)cadena = Replace(cadena, ".", ".", 1, -1, 1)cadena = Replace(cadena, "^", "^", 1, -1, 1)cadena = Replace(cadena,"¡","¡", 1, -1, 1)cadena = Replace(cadena,"ñ","ñ", 1, -1, 1)cadena = Replace(cadena,"Ñ","Ñ", 1, -1, 1)cadena = Replace(cadena,"á","á", 1, -1, 1)cadena = Replace(cadena,"Á","Á", 1, -1, 1)cadena = Replace(cadena,"é","é", 1, -1, 1)cadena = Replace(cadena,"É","É", 1, -1, 1)cadena = Replace(cadena,"í","í", 1, -1, 1)cadena = Replace(cadena,"Í","Í", 1, -1, 1)cadena = Replace(cadena,"ó","ó", 1, -1, 1)cadena = Replace(cadena,"Ó","Ó", 1, -1, 1)cadena = Replace(cadena,"ú","ú", 1, -1, 1)cadena = Replace(cadena,"Ú","Ú", 1, -1, 1)cadena = Replace(cadena , """, """", 1, -1, 1)  ' Reemplaza los corchetes por entidades cuendo no equivalen a las etiquetas de códigoSet Reg1= New RegExp Reg1.IgnoreCase = TrueReg1.Global = TrueReg1.Pattern = "\[(?!(\/*)code)(.*)(\])"RempCorchete = Reg1.Replace(cadena, "[$2]")  ' Este reemplazo hay que hacerlo aquí, para que no afecte al cierre de las etiquetascadena = Replace(RempCorchete, "/", "/", 1, -1, 1)  ' Reemplaza las etiquetas de código por el caracter "|". Se puede escoger cualquier otro caracterSet Reg2= New RegExp Reg2.IgnoreCase = TrueReg2.Global = TrueReg2.Pattern = "(\r?[^a-z0-9&]?\[.*?\]\r?[^a-z0-9&]?)"RempEtiquetas = Reg2.Replace(cadena, "|")  ' Reemplaza las etiquetas de códogo y todo el texto que no está envuelto en ellas. ' Solo mantenemos el lenguaje (atributo) de las etiquetas en caso que lo tengan y se le añade el caracter "|" . ' Se puede escoger cualquier otro caracterSet Reg3= New RegExp Reg3.IgnoreCase = TrueReg3.Global = TrueReg3.Pattern = "([^\[]*)(\[(?:[^""\]]+))([""]?)(\s*)(.*?)\4\3(\][^\[]*)(\[[^\[]+)"RempLengaje = Reg3.Replace(cadena, "$5|") ' Separamos el lenguajearrlang = Split(Trim(RempLengaje),"|") contador = 0 ' Este reemplazo hay que hacerlo aquíRempEtiquetas = Replace(RempEtiquetas, """", """, 1, -1, 1)  ' Separamos el texto plano del códigoarretiqueta = Split(RempEtiquetas,"|")            enumeraYcolorea_linea = ""     For n = 0 to UBound(arretiqueta)        ' Es texto plano        IF (Int(n) mod 2 = 0 ) then             enumeraYcolorea_linea = enumeraYcolorea_linea & arretiqueta(n)                ' Es código        ELSE             ' En la etiqueta de código no se especifica lenguaje            If (arrlang(contador) = "" or arrlang(contador) = null) then            encabezado = ""             ' Se especifica lenguaje            Else            encabezado = "<div id=""lenguaje"">" & arrlang(contador) & "</div>"            End Ifcontador = contador +1            enumeraYcolorea_linea = enumeraYcolorea_linea & "<pre><div class=""contenedor"">" & encabezado & "<ol type=""1"">"             array_codigo = Split(arretiqueta(n), vbCrLf) ' Dividimos cada linea de código         For i = 0 to UBound(array_codigo)            resto = (abs(i) mod 2)            select Case resto ' Coloreamos cada linea                    case 0: estilo = "contenido1"                   case 1: estilo = "contenido2"            end select            enumeraYcolorea_linea = enumeraYcolorea_linea & "<li class="""&estilo&""">" &  array_codigo(i) & "</li>"        Next 'i            enumeraYcolorea_linea = enumeraYcolorea_linea & "</ol></div></pre>"         END IF    Next 'n ' Reemplamos los saltos de lineaRempSaltoLinea = Replace(enumeraYcolorea_linea, vbCrLf, "<br />" & vbCrLf, 1, -1, 1) Set RempLengaje = NothingSet RempEtiquetas = NothingSet RempCorchete = NothingEnvuelveCod = RempSaltoLineaEnd Function  ' Función para subir a la bd el html generadoResponse.Write EnvuelveCod(Trim(Request.Form("txtarea"))) ' Recibe el html de la bd' Response.Write Request.Form("txtarea")%></body></html>
Uso
  Cita:  Código montado por [Adler][cod e="javascript"]funcion funcion() {
 document.write ("hola");
 }[/cod e]
 
 Las etiquetas de código pueden contener el lenguaje usado o no
 
 [cod e="php"]<?php
 $arr = Array(1,2,3,"a");
 echo $arr[0];
 ?>
 [/cod e]
 
 [cod e]<%
 Dim bienvenida
 bienvenida = "mundo"
 response.write "hola" & bienvenida
 %>
 [/cod e]
 
 También podemos hacer que no se ejecuten las entidades HTML
 
 [cod e="php"]
 <?php
 $cadena = str_replace("<", "<", $cadena);
 $cadena = str_replace(">", ">", $cadena);
 $cadena = str_replace("{", "& #123;", $cadena);
 $cadena = str_replace("}", "& #125;", $cadena);
 $cadena = str_replace("$", "& #36;", $cadena);
 $cadena = str_replace("%", "& #37;", $cadena);
 $cadena = str_replace("(", "& #40;", $cadena);
 $cadena = str_replace(")", "& #41;", $cadena);
 $cadena = str_replace("\\", "& #92;", $cadena);
 $cadena = str_replace("|", "& #124;", $cadena);
 $cadena = str_replace(":", "& #58;", $cadena);
 $cadena = str_replace("?", "& #63;", $cadena);
 $cadena = str_replace("¿", "¿", $cadena);
 $cadena = str_replace("!", "& #33;", $cadena);
 $cadena = str_replace("+", "& #43;", $cadena);
 $cadena = str_replace("*", "& #42;", $cadena);
 $cadena = str_replace(",", "& #44;", $cadena);
 $cadena = str_replace("-", "& #45;", $cadena);
 $cadena = str_replace("_", "& #95;", $cadena);
 $cadena = str_replace("=", "& #61;", $cadena);
 $cadena = str_replace("'", "& #39;", $cadena);
 $cadena = str_replace(".", "& #46;", $cadena);
 $cadena = str_replace("^", "& #94;", $cadena);
 $cadena = str_replace("¡","¡", $cadena);
 $cadena = str_replace("ñ","ñ", $cadena);
 $cadena = str_replace("Ñ","Ñ", $cadena);
 $cadena = str_replace("á","á", $cadena);
 $cadena = str_replace("Á","Á", $cadena);
 $cadena = str_replace("é","é", $cadena);
 $cadena = str_replace("É","É", $cadena);
 $cadena = str_replace("í","í", $cadena);
 $cadena = str_replace("Í","Í", $cadena);
 $cadena = str_replace("ó","ó", $cadena);
 $cadena = str_replace("Ó","Ó", $cadena);
 $cadena = str_replace("ú","ú", $cadena);
 $cadena = str_replace("Ú","Ú", $cadena);
 ?>
 [/cod e]
 
 Suerte
 
				__________________Los formularios se envían/validan con un botón Submit
 <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
   Última edición por Adler; 06/03/2010 a las 06:32
					
					
						Razón: Las etiquetas de code y algunas entidades html están separas para este foro no las ejecute
     |