在我的表单中,我有一个textarea字段,用户可以在其中输入数据并按“Enter”以设置换行符并继续输入数据。
当我从数据库中检索数据时,我需要删除所有换行符并将这些数据存储在JavaScript数组中。
在下面的示例中,我正在检索一个注释(包含多个换行符<br/>
)并存储在一个名为“exp_from_db”的数组中
exp_from_db[1]= '<%= note.NOTE_VALUE %>';
我的问题是如何在将<%= note.NOTE_VALUE %>
存储在javascript数组中之前删除这些换行符。
感谢您的帮助。
答案 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
标记自行关闭之前考虑可能的空格/换行符/标签。