gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 中用换行符替换空格?

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:40 29 4
gpt4 key购买 nike

我正在尝试用 Ruby on Rails 中的换行符替换字符串中的空格,

name = 'john smith'

到目前为止我已经尝试了以下方法:

name.gsub!(" ", "\n")   
name.gsub!(" ", "<br>")

name.sub(" ", "\n")
name.sub(" ", "<br>")

但以上均无效。

最佳答案

将字符串标记为 html_safe 时必须小心,特别是如果它可能包含用户输入:

name = 'john smith<script>alert("gotcha")</script>'

name.gsub(' ', '<br>').html_safe
#=> "john<br>smith<script>alert(\"gotcha\")</script>"

Rails 会按原样输出该字符串,即包括 <script>标签。

为了利用 Rails 的 HTML 转义,您应该只将受信任的部分标记为 html_safe .对于手动连接的字符串:

''.html_safe + 'john' + '<br>'.html_safe + 'smith<script>alert("gotcha")</script>'
#=> "john<br>smith&lt;script&gt;alert(&quot;gotcha&quot;)&lt;/script&gt;"

如您所见,只有 <br>标签完好无损,其余部分已正确转义。

有几个帮助程序可用于构建安全字符串以及用于构建 HTML 标记。在你的情况下,我会使用 safe_join tag :

name = 'john smith<script>alert("gotcha")</script>'

safe_join(name.split(' '), tag(:br))
#=> "john<br />smith&lt;script&gt;alert(&quot;gotcha&quot;)&lt;/script&gt;"

关于ruby-on-rails - 如何在 Ruby on Rails 中用换行符替换空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44773360/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com