Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从rails中的代码中删除新行(\n)?_Javascript_Jquery_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 如何从rails中的代码中删除新行(\n)?

Javascript 如何从rails中的代码中删除新行(\n)?,javascript,jquery,ruby-on-rails,ruby,Javascript,Jquery,Ruby On Rails,Ruby,我当前的视图中有以下代码(jQuery),当标题有一个\n字符时,它会打断我的js $("#t").html("#{title.html_safe}"); 以下方法可行,但我认为这有点像黑客: $("#t").html("#{title.gsub("\n","")}"); 我不确定你是否会变得不那么刻薄 如果您仍然想要新行,可以使用simple\u格式 i、 e.$(“#t”).html(“#{simple#u format title}”) 尽管这也将它包装在一个标记中 您可以尝试: $

我当前的视图中有以下代码(jQuery),当标题有一个\n字符时,它会打断我的js

$("#t").html("#{title.html_safe}");
以下方法可行,但我认为这有点像黑客:

$("#t").html("#{title.gsub("\n","")}");

我不确定你是否会变得不那么刻薄

如果您仍然想要新行,可以使用
simple\u格式

i、 e.$(“#t”).html(“#{simple#u format title}”)

尽管这也将它包装在一个
标记中

您可以尝试:

$("#t").html("#{title.html_safe}".chomp);
或更短:

$("#t").html(title.html_safe.chomp);
这将删除尾随的换行符

如果要删除前导空格和尾随空格,可以将
chomp
替换为
strip

如果文本的字符串中有换行符,则
gsub
解决方案似乎是正确的解决方案,但您不需要
{…}

$("#t").html(title.gsub("\n",""));

您正在寻找的方法是。它将从字符串末尾删除任何回车字符

$("#t").html("#{title.chomp}");
与往常一样,如果您完全确定
title
变量是安全的,则只能使用
html\u safe
。。。尤其是在Javascript文件中使用它!我并没有把它包括在我的代码示例中,因为我就是不能让自己去做。另外,请参阅上的说明,说明如何对可能为
nil
的变量使用
html\u safe
。我建议只在字符串文本上使用它

编辑:

如果您的
标题
可能包含在Javascript中使用之前需要转义的引号(例如
“冬天来了”,我说“
,它将作为
.html(““冬天来了”,我说”);
)那么你也应该使用链接中建议的方法@mu太短了

$("#t").html("#{j(title.chomp)}");
如果
title='“冬天来了”
则上述代码将生成

$("#t").html("\"Winter is Coming\"");

如果在标题字符串中间有一个回车的机会,那么<代码>字符串yggs<代码>就是这样。p>

$("#t").html("#{j(title.gsub(/[\n\r]/, " "))}");

我在
gsub
的第二个参数中加了一个空格,因此
'Winter\nis\nComing'
将变成
'Winter is Coming'
,而不是
'WinterisComing'

这么多错误的答案。使用。

他确实需要字符串插值,因为他正在输出Javascript。当
title
类似于
“Bobby Tables”是真的吗?
?或者如果在<代码>标题中间有换行符?考虑到这些考虑,几乎听起来好像需要一个帮助器方法来处理许多不同的情况(比如反斜杠)。你会有什么建议?不要重新发明轮子。使用现有的
escape\u javascript
函数。@DGM我确实建议使用现有的
escape\u javascript
。我甚至在APIdock上提供了它的文档链接。我对助手方法的评论是在我编辑答案之前。我刚刚看到了对chomp的所有引用。OP提出的问题掩盖了真正的问题——我怀疑他们不是真的想删除换行符,而是想让javascript正常工作。该主题误导了OP希望消除运输退货的真正问题。没有逃脱他们。这就是为什么我在回答中建议在将字符串传递到
j()
中之前删除回车符的原因。主题是这样说的,但如果你通读了整个内容,这是为了防止jquery行中断。escape_javascript是解决当前实际问题的正确方法。