去除开头和结尾的换行符

3

我正在保存一个带有HTML标签的文本。例如,如果我输入'你叫什么名字?',它将被存储为'<p>你叫什么名字?</p>'存在表中。

如果将相同的值传递到报告中,字符串开头和结尾会多出一个额外的换行符。我使用代码@question.description.html_safe输出@question.description的值。

请告诉我一种解决方法,可以从该段落字符串的开头和结尾修剪"\n"

3个回答

5

String#strip返回去掉了开头和结尾空白字符的字符串副本。

"\n what\r\n".strip
#=> "what"

如果您想更改变量,您需要执行以下操作之一:
s = "\nyour string\n"
s.strip!    # first option
s = s.strip # second option

这似乎对字符串没有影响。因此,我认为段落字符串开头应该有一个<p>标签,结尾应该有</p>标签。由于这是PDF报告,我无法检查。请告诉我如何删除这些前导和尾随段落标记? - Rajesh Omanakuttan
阅读函数描述,它“返回一个副本”。如果您仔细阅读文档,甚至可以在strip下看到另一个名为strip!的函数。 - oldergod
我不知道为什么这个被点赞了。这也会移除空格,而且原帖提到的是换行符。 - Slava Eremenko

1

要移除所有的html标签 使用strip_tags方法

strip_tags('<p>What is your name?</p>')

仅删除开头和结尾的 <p></p> 标签

s = ' <p>What is <p> your</p> name?</p> '
s = s.strip.sub('<p>','').chomp('</p>')
#=> "What is <p> your</p> name?"

要移除所有的 <p></p> 标签。
'<p>What is your name?</p>'.gsub(/<p>|<\/p>/,'')

如果我只想删除开头的<p>标签和结尾的</p>标签而不删除其他标签怎么办? - Rajesh Omanakuttan
'\n<p>What is </p><p>your name?</p>\n'.strip!.gsub(/\A<p>|<\/p>\Z/, '') — 上面的例子将会移除 _所有段落标签_。 - Aleksei Matiushkin
我只想删除开头的<p>标签和结尾的</p>标签,其它的标签需要保留不变。请帮忙。 - Rajesh Omanakuttan

0
Rails有一个很好的字符串方法叫做:squish,它可以从字符串中删除换行符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接