2012-10-01 35 views
9

Traté de hacerlo utilizando strings.Replace(s,"\n","<br>",-1); Pero el resultado es algo diferente que podría ser representada como <br> en un navegador web, pero en realidad no es "<br>". ¿Puede alguien decirme cómo hacer esto?golang: cómo reemplazar " n" con "<br>"

Mi objetivo principal es cambiar el carácter de fin de línea de <textarea> en una etiqueta <br> en html.

Cualquier pista sería bienvenida, gracias de antemano.

PS:

Q: ¿Estás tratando de obtener de la base de datos?

A: Sí, obtengo la cadena de la base de datos de GAE, y luego reemplazo \n con <br>. ¿Hay algo diferente con la cadena de la base de datos?

+4

Hice lo que escribiste ('strings.Replace (s," \ n ","
", -1)') y obtuve un '
' en lugar del '" \ n "'. ¿Por qué dices que no obtienes "
"? ¿Qué haces después con esa cadena? –

+0

¿Estás tratando de recuperar un formulario de una base de datos? – NewUser

+2

Creo que podría ser escapado por el paquete de plantilla – RoboTamer

Respuesta

13

Existe un problema en alguna parte de su código; ¿quizás la salida se está escapando cuando se coloca en una plantilla? La línea que ha publicado reemplazará nuevas líneas con ancho y es correcta - ver esta sencilla prueba:

package main 
import("strings") 

func main() { 
    s := "I am a string\nContaining new lines" 
    s = strings.Replace(s,"\n","<br>",-1) 
    println(s) 
} 

Se necesitaría para publicar más código que esto para la gente para encontrar a dónde va mal, por ejemplo, publicar la función que crea/manipula la cadena, y el bit de la plantilla donde se envía a html.

En Ir parque infantil - http://play.golang.org/p/KMzxku4UtL

2

https://stackoverflow.com/users/296559/robotamer lo hizo bien. Problema resuelto.

El problema está en el archivo de plantilla. Usé | html para escapar de los contenidos. Cuando eliminé "| html" en el código, todo está bien.

Gracias a todos por su ayuda.

+0

Sería bueno aceptar su propia respuesta (o cualquier respuesta) cuando resuelva su problema. Ver [aquí] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) para más detalles. – nemo

+1

Esta es una mala idea: ahora está abierto a las vulnerabilidades de inyección HTML (consulte https://www.owasp.org/index.php/HTML_Injection). Es mejor escribir un bucle en su plantilla para recorrer cada línea, y poner un
entre. –

Cuestiones relacionadas