2

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

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

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

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

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

谢谢你的帮助。

4

4 回答 4

4

如果字符串<br/>及其变体( <br>, <br />, <br >)是您想要删除的全部,gsub是一种方法

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

如果你总是想去掉这个,你可以NOTE_VALUE在 ActiveRecord 类中修改 getter

def NOTE_VALUE
  read_attribute("NOTE_VALUE").gsub(/<br(\s*\/)?>/, '')
end
于 2012-08-31T15:06:02.623 回答
2
note.NOTE_VALUE.gsub(/\<br\s*\/?\>/, "")

将删除所有出现<br />的:<br/><br>.

在 irb 中试试这个例子:

puts "text<br /> some text <br>another text<br/>".gsub(/\<br\s*\/?\>/, "")
于 2012-08-31T15:14:25.463 回答
1

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

您可以执行以下操作:

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

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

于 2012-08-31T15:06:34.647 回答
1

如果你使用 Rails,你有两个选择:

  • 如果您确定您的 DB 值不包含其他 HTML 标记(或者确实包含,但您不在乎它们是否被擦除),您可以简单地执行以下操作:strip_tags(note.NOTE_VALUE),但您必须注意这会擦除任何 HTML字符串中的标签,不仅是出现<br/>次数。

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

于 2012-08-31T15:09:48.713 回答