我有一個字符串:追加空格爲字符串
str="Myname"
我希望字符串後添加四個空格。我所做的是:
str=str+" "+"somename"
當我打印str
爲<%= str %>
,輸出只顯示了一個空白。我該如何做這項工作?我也試過:
str=str+" "*4+"somename"
這也給出了與上面相同的輸出。我不想打印這個。該字符串被用作更多其他操作的Ruby變量。我可以在Ruby中創建它,但不能在RoR中創建。
我有一個字符串:追加空格爲字符串
str="Myname"
我希望字符串後添加四個空格。我所做的是:
str=str+" "+"somename"
當我打印str
爲<%= str %>
,輸出只顯示了一個空白。我該如何做這項工作?我也試過:
str=str+" "*4+"somename"
這也給出了與上面相同的輸出。我不想打印這個。該字符串被用作更多其他操作的Ruby變量。我可以在Ruby中創建它,但不能在RoR中創建。
這與HTML如何處理空白有關。我假設你使用的是基於你使用的Erb like語法。如果您確實必須輸出空格,請使用
。
但我建議你嘗試用CSS來解決這個問題。
變量中可能有4個空格,但瀏覽器會在1個空格後截斷多餘的空格,因此您可能無法查看它們。請嘗試以下步驟
<pre>
<%= str %>
</pre>
您會看到空格被添加到代碼中。要實現你正在嘗試做的事情,請輸入 而不是空格
如果你在控制檯中嘗試下面的代碼,你會發現問題出在你的html上;
str="Myname"
str=str+" "+"somename"
=> "Myname somename"
嘗試,因爲遵循
<pre>
<%= str %>
</pre>
請注意有問題的編輯。 – 2013-02-28 11:19:58
請你解釋一下這個問題,我不明白你想說什麼 – 2013-02-28 11:27:51
你可以替換HTML編碼字符串的空間,然後用html_safe或生喜歡渲染,
<%= raw "Myname somename".gsub(/\s/, " ") %>
按照你相同的結構,它會be
str = raw(str + " " + "somename")
在HTML中,只計算一個空白空間,無論多少。所以你必須使用HTML Entity
(意思是Non Breaking SPace)來顯示多個空格。
raw
部分是必需的,因爲默認情況下,Rails不允許通過字符串輸出HTML實體或任何實際的HTML,因爲它們可以被惡意用戶用來攻擊您的站點和/或用戶。
因此,您必須在Rails中使用raw
並使用
。
<pre>I am a bad web programmer</pre>
存在的危險的前標籤,應該不惜一切代價避免。 在你的erb中使用它。
<%= raw(CGI.escapeHTML(str).gsub(/\s/, ' ')) %>
no。我想用紅寶石。這不適用於打印。此字符串正用於在數據庫中搜索 – 2013-02-28 11:15:22
您可以編輯問題以準確顯示您使用它的位置嗎?對我來說'<%= %>'似乎很奇怪。 – harm 2013-02-28 11:26:45
也許是[sprintf](http://www.ruby-doc.org/core-2.0/Kernel.html#method-i-sprintf)你在找什麼。 – harm 2013-02-28 11:27:09