不需要的字符 - \r \n 被插入到数据库中 - 我需要在我的视图页面上删除它们
Unwanted characters - \r \n getting inserted into db - i need to remove them on my view page
我用了 html_safe,生的,也消毒过。但我仍然使用 \r
\n
这样的字符 — 这是因为当我在描述字段中输入数据时,我在 Mac 中使用 "return/enter" 键转到下一行 - 这是 textarea .在我的视图页面中有没有办法避免这些。
实际结果 -
\r\ntext text text text text text
\r\n\r\n
this place is famous for blah blah blah
预期结果-
text text text text text text
this place is famous for blah blah blah
您的选择是在将字符插入数据库之前去除字符,或者在视图中去除它们。
无论哪种方式,您都可以使用 gsub 执行此操作 - 您上面的评论表明您使用 gsub 不当(请记住 post 您在问题中尝试过的内容以及结果!)
示例:
@attraction.description.gsub(/\r\n/,'')
这只会替换回车符 return 后跟换行符,我建议替换任何 newline/carriage returns:
@attraction.description.gsub(/[\r\n]/,'')
如果要替换为:
@attraction.description.gsub(/[\r\n]+/,'<br />').html_safe
等等..
另一方面,如果您确实在输出中看到文本“\r\n”,那么您已经以某种方式将回车符 return 和换行符转换为它们的 "typable"对应物,可能在存储它们之前使用 str.inspect 之类的调用?
如果是这样,那么您要替换的不是回车 return 和换行符,而是字符串“\r”和“\n”,例如:
@attraction.description.gsub(/\[rn]/,'').html_safe
(您将正则表达式放在 gsub 的引号中,使其成为字符串比较而不是正则表达式)
希望对您有所帮助:
%{ Multi-line
string }.squish # => "Multi-line string"
" foo bar \n \t boo".squish # => "foo bar boo"
好吧,我已经在线测试了这个,而不是在我的 ruby 中,所以不知道它是否有效 %100。但是从我读到的。您的代码将 \r\n\
保存为文本,您的预期答案不应显示它们,因此您必须 运行 以下命令:
x.gsub(/[\r\n]/,'')
因为\
与r
&n
一起使用来定义其他字符所以你首先需要先丢弃它\
显示\
字符.
\n
表示“\n”字符串
\n
表示换行
我用了 html_safe,生的,也消毒过。但我仍然使用 \r
\n
这样的字符 — 这是因为当我在描述字段中输入数据时,我在 Mac 中使用 "return/enter" 键转到下一行 - 这是 textarea .在我的视图页面中有没有办法避免这些。
实际结果 -
\r\ntext text text text text text
\r\n\r\n
this place is famous for blah blah blah
预期结果-
text text text text text text
this place is famous for blah blah blah
您的选择是在将字符插入数据库之前去除字符,或者在视图中去除它们。
无论哪种方式,您都可以使用 gsub 执行此操作 - 您上面的评论表明您使用 gsub 不当(请记住 post 您在问题中尝试过的内容以及结果!)
示例:
@attraction.description.gsub(/\r\n/,'')
这只会替换回车符 return 后跟换行符,我建议替换任何 newline/carriage returns:
@attraction.description.gsub(/[\r\n]/,'')
如果要替换为:
@attraction.description.gsub(/[\r\n]+/,'<br />').html_safe
等等..
另一方面,如果您确实在输出中看到文本“\r\n”,那么您已经以某种方式将回车符 return 和换行符转换为它们的 "typable"对应物,可能在存储它们之前使用 str.inspect 之类的调用?
如果是这样,那么您要替换的不是回车 return 和换行符,而是字符串“\r”和“\n”,例如:
@attraction.description.gsub(/\[rn]/,'').html_safe
(您将正则表达式放在 gsub 的引号中,使其成为字符串比较而不是正则表达式)
希望对您有所帮助:
%{ Multi-line
string }.squish # => "Multi-line string"
" foo bar \n \t boo".squish # => "foo bar boo"
好吧,我已经在线测试了这个,而不是在我的 ruby 中,所以不知道它是否有效 %100。但是从我读到的。您的代码将 \r\n\
保存为文本,您的预期答案不应显示它们,因此您必须 运行 以下命令:
x.gsub(/[\r\n]/,'')
因为\
与r
&n
一起使用来定义其他字符所以你首先需要先丢弃它\
显示\
字符.
\n
表示“\n”字符串\n
表示换行