【问题标题】:Remove new line in javascript code in string删除字符串中javascript代码中的新行
【发布时间】:2014-10-24 07:46:30
【问题描述】:

我在 javascript 文件的源代码中有一个带有换行符的字符串,如:

var str = 'new
           line';

现在我想删除代码中的换行符。我在这方面找不到任何东西,我不断收到关于 \n\r 的信息。

提前致谢!

编辑(2021 年)

这个问题在很久很久以前就被问过了,现在仍然被比较频繁地查看,所以让我详细说明我正在尝试做什么以及为什么这个问题存在固有缺陷。

我想要完成的只是使用上述语法(即多行字符串)以及如何实现这一点,因为上面会引发 SyntaxError。

但是,上面的代码只是无效的 JS。你不能使用代码来修复语法错误,你只是不能在有效的可用代码中产生语法错误。

如果我们使用反引号而不是单引号将字符串转换为模板文字,现在可以完成上述操作:

var str = `new
           line`;

完全有效,与

相同
var str = 'new\n           line';

就删除换行符而言,我认为下面的答案充分解决了这个问题。

【问题讨论】:

  • 这不是一个有效的代码
  • 根本无效?没有办法解决这个问题? ://
  • Royi 表示您的示例代码无效。字符串可能包含换行符(任何类型的),但你不能像以前那样声明它们。
  • 你从哪里得到这个字符串?你直接写?如果是,则需要在每行末尾添加 \n\。否则,无论哪种语言返回该字符串,它都是错误的,并且会破坏您的 JS,并且(奇怪地建议)没有其他替换方法会导致代码损坏(在控制台错误中很容易看到)。
  • 我想在函数中输入类似的字符串,所以我实际上不需要\n\r。我想知道是否有办法使这种代码合法化。

标签: javascript newline


【解决方案1】:

str = str.replace(/\n|\r/g,'');

用空字符串替换字符串中的所有 \n 或 \r 实例。

【讨论】:

    【解决方案2】:

    如果您事先不知道“新行”是\r 还是\n(任意组合),最简单的方法是将它们都删除:

    str = str.replace(/[\n\r]/g, '');
    

    它做你所要求的;你最终得到newline。如果你想用一个空格替换换行符,使用

    str = str.replace(/[\n\r]+/g, ' ');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      • 2017-10-16
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多