2012-10-01 20 views
9

tôi đã cố gắng để làm điều đó bằng strings.Replace(s,"\n","<br>",-1); Nhưng kết quả là một cái gì đó khác nhau mà có thể được hiển thị như <br> trong một trình duyệt web, nhưng trên thực tế là không "<br>". Bất cứ ai có thể cho tôi biết làm thế nào để làm điều này?golang: làm thế nào để thay thế " n" với "<br>"

Mục tiêu chính của tôi là thay đổi ký tự kết thúc của dòng từ <textarea> thành thẻ <br> bằng html.

Bất kỳ đầu mối nào đều được chào đón, cảm ơn trước.

PS:

Q: Bạn đang cố gắng lấy nó từ cơ sở dữ liệu?

A: Vâng, tôi nhận được chuỗi từ cơ sở dữ liệu của GAE và sau đó thay thế \n bằng <br>. Có gì khác với chuỗi từ cơ sở dữ liệu?

+4

Tôi đã làm những gì bạn đã viết ('strings.Replace (s," \ n ","
", -1)') và tôi có một '
' thay cho '" \ n "'. Tại sao bạn nói bạn không nhận được "
"? Bạn làm gì sau đó với chuỗi đó? –

+0

Bạn đang cố gắng tìm nạp biểu mẫu cơ sở dữ liệu? – NewUser

+2

Tôi nghĩ rằng anh ấy có thể bị thoát khỏi gói mẫu – RoboTamer

Trả lời

13

Có sự cố ở nơi khác trong mã của bạn - có lẽ đầu ra đang được thoát khi được đưa vào mẫu? Điểm mấu bạn đã đăng sẽ thay thế dòng mới với br và là đúng - xem thử nghiệm này rất đơn giản:

package main 
import("strings") 

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

Bạn sẽ cần phải gửi mã hơn này cho mọi người tìm thấy nơi bạn đang đi sai, ví dụ đăng chức năng tạo/điều khiển chuỗi, và bit của mẫu, nơi nó được xuất ra html.

On Go sân chơi - http://play.golang.org/p/KMzxku4UtL

2

https://stackoverflow.com/users/296559/robotamer đã nhận nó đúng. Đã giải quyết được sự cố.

Sự cố nằm trong tệp mẫu. Tôi đã sử dụng | html để thoát khỏi nội dung. Khi tôi xóa "| html" trong mã, mọi thứ đều ổn.

Cảm ơn tất cả vì sự giúp đỡ của bạn.

+0

Sẽ tốt nếu bạn chấp nhận câu trả lời của riêng bạn (hoặc bất kỳ câu trả lời nào) khi giải quyết vấn đề của bạn. Xem [tại đây] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) để biết chi tiết. – nemo

+1

Đây là một ý tưởng tồi - bạn hiện đang mở lỗ hổng HTML injection (xem https://www.owasp.org/index.php/HTML_Injection). Bạn nên viết một vòng lặp trong mẫu của mình để lặp qua mỗi dòng và đặt một số
giữa. –

Các vấn đề liên quan