删除ruby字符串中的行<br/>

时间:2012-08-31 14:58:09

标签: ruby-on-rails ruby

在我的表单中,我有一个textarea字段,用户可以在其中输入数据并按“Enter”以设置换行符并继续输入数据。

当我从数据库中检索数据时,我需要删除所有换行符并将这些数据存储在JavaScript数组中。

在下面的示例中,我正在检索一个注释(包含多个换行符<br/>)并存储在一个名为“exp_from_db”的数组中

exp_from_db[1]= '<%= note.NOTE_VALUE %>';

我的问题是如何在将<%= note.NOTE_VALUE %>存储在javascript数组中之前删除这些换行符。

感谢您的帮助。

4 个答案:

答案 0 :(得分:3)

如果要删除字符串<br/>及其<br><br /><br >的变体,{{ 1}}是一种方式

gsub

如果总是想要删除它,您可以在ActiveRecord类中修改note.NOTE_VALUE.gsub(/<br\s*\/?>/, '') 的getter

NOTE_VALUE

答案 1 :(得分:2)

note.NOTE_VALUE.gsub(/\<br\s*\/?\>/, "")

将删除所有匹配项:<br /><br/><br>

在irb中尝试此示例:

puts "text<br /> some text <br>another text<br/>".gsub(/\<br\s*\/?\>/, "")

答案 2 :(得分:1)

查看http://www.ruby-doc.org/core-1.9.3/String.html#method-i-gsub

您可以执行以下操作:

parsed_string = exp_from_db[1].gsub(/<br\/>/, '')

这应该用空字符串替换br标记的任何实例,从而删除它们。

答案 3 :(得分:1)

如果您使用Rails,您有两种选择:

  • 如果您某些,您的数据库值不包含其他HTML标记(或者它确实如此,但您不关心它们是否被删除),您只需执行以下操作: strip_tags(note.NOTE_VALUE),但您必须注意,这会擦除字符串中的所有HTML标记,而不仅仅是<br/>出现。

  • 或者,你可以简单地使用gsub来摆脱这些:note.NOTE_VALUE.gsub(/<br\s*\/?>/, '')请注意,此正则表达式会在br标记自行关闭之前考虑可能的空格/换行符/标签。