2012-10-01 15 views
9

での「n \」交換する方法は、私がstrings.Replace(s,"\n","<br>",-1); を使用してそれを実行しようとしましたが、結果はWebブラウザに<br>として表示することができ異なるものですが、実際はない"<br>"です。誰も私にこれを行う方法を教えてもらえますか?golang:「<br>」

私の主な目標は、行末の文字を<textarea>からhtmlの<br>タグに変更することです。

事前に感謝の気持ちがあります。

PS:

Q:データベースから取得しようとしていますか?

A:うん、GAEのデータベースから文字列を取得し、\n<br>に置き換えてください。データベースとは異なる文字列がありますか?

+4

あなたが書いたこと( 'strings.Replace(s、" \ n "、"
"、-1)')を実行したところ、 '' \ n "'の代わりに '
'なぜあなたは "
"を得られないと言いますか?後でその文字列で何をしますか? –

+0

フォームをデータベースから取得しようとしていますか? – NewUser

+2

私は彼がテンプレートパッケージ – RoboTamer

答えて

13

コードのどこかに問題があります。テンプレートに入力すると出力がエスケープされているのでしょうか?あなたが投稿した行がBRと改行を交換し、正しいことだろう - この簡単なテストを参照してください。

package main 
import("strings") 

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

例えばポストあなたは、あなたが間違っているところの人が見つけるために、これよりも多くのコードを投稿する必要があるだろう関数は文字列を作成/操作し、テンプレートのビットをhtmlに出力します。囲碁の遊び場で

からhttp://play.golang.org/p/KMzxku4UtL

2

https://stackoverflow.com/users/296559/robotamerはそれが右になりました。問題が解決しました。

問題はテンプレートファイルにあります。私はコンテンツをエスケープするために| htmlを使いました。コード内で "| html"を削除しても、すべて問題ありません。

ありがとうございました。

+0

によってエスケープされている可能性があると思うあなたの問題を解決するときあなた自身の答え(またはすべての答え)を受け入れることは良いでしょう。詳細については、[ここ](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)を参照してください。 – nemo

+1

これは悪い考えです.HTMLインジェクションの脆弱性(https://www.owasp.org/index.php/HTML_Injectionを参照)が公開されました。テンプレート内にループを記述して各行をループする方がよい場合は、
を間に入れてください。 –