如何从rails中的代码中删除新行( )
How do I strip out a new line ( ) from my code in rails?
我目前在视图中有以下代码(jQuery),当title有一个字符时,它会破坏我的js。
$("#t").html("#{title.html_safe}");
以下是有效的,但我认为这有点像黑客:
$("#t").html("#{title.gsub("'n","")}");
您要查找的方法是String#chomp。它将删除字符串末尾的所有回车字符。
$("#t").html("#{title.chomp}");
和往常一样,只有在完全确定title
变量是安全的情况下才使用html_safe
。。。尤其是因为您在Javascript文件中使用它!我没有把它包括在我的代码示例中,因为我无法做到这一点。此外,请参阅APIdock上关于在可能是nil
的变量上使用html_safe
的说明。我建议只在字符串文字中使用它。
编辑:
如果您的title
可能包含在Javascript中使用之前需要转义的引号(例如'"Winter is Coming", I say'
,它将插入到您的Javascript中作为.html(""Winter is Coming", I say");
),那么您也应该使用链接中建议的escape_javascript
方法@mu太短。
$("#t").html("#{j(title.chomp)}");
如果是title = '"Winter is Coming"'
,则上述代码将产生。
$("#t").html("'"Winter is Coming'"");
如果标题字符串的中间也有可能出现回车,那么String#gsub
就是最好的方法。
$("#t").html("#{j(title.gsub(/['n'r]/, " "))}");
我在gsub
的第二个参数中放了一个空格,这样'Winter'nis'nComing'
就会变成'Winter is Coming'
而不是'WinterisComing'
。
我不确定你是否会得到更少的黑客
如果你仍然想有新的线路,你可以使用simple_format
即$("#t").html("#{simple_format title}");
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format
尽管这也将其封装在<p>
标签中。
您可以尝试:
$("#t").html("#{title.html_safe}".chomp);
或更短:
$("#t").html(title.html_safe.chomp);
这将删除尾随换行符。
如果要删除前导空格和尾随空格,可以将chomp
替换为strip
。
如果您的文本中有换行符,gsub
解决方案似乎是正确的解决方案,但您不需要#{...}
:
$("#t").html(title.gsub("'n",""));
这么多错误答案。使用escape_javascript。
- 如何从rails中的代码中删除新行( )
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 使用删除文本创建新行
- 如何删除backgridjs行以显示新行
- 无法使用角度删除新创建的行.js
- 如何在使用Angular.js打开新行后添加删除按钮
- JQuery 数据表添加新行,如果该行已经存在,请将其删除并为该 ID 插入新行
- 如何在不影响 Jquery 数据表中其他行的情况下删除选定的现有数据并添加新行
- 从链接中删除新行
- AJAX:向表添加新行或使用 AJAX 删除
- 删除新行
- 删除文本区域中的新行并替换为值中的字符
- 删除字符串中javascript代码中的新行
- Regex删除空白和新行
- 在JQuery .html()调用中包含一个Twig模板并删除新行
- 单击鼠标即可从HTML表中删除旧行并插入新行
- 从顶部删除新的换行,并用剩余的文本替换
- 将文本区域的内容移到输入字段并移回来将删除新行.如何克服
- 如何修改我的正则表达式以不删除新行
- 剑道网格:取消编辑删除新行