【问题标题】:How to cut off the last newline from Javascript string containing multiple lines [duplicate]如何从包含多行的Javascript字符串中截断最后一个换行符[重复]
【发布时间】:2020-04-27 20:26:03
【问题描述】:

在 Javascript 中,我生成了一个包含多行的字符串,所有行都以换行符结尾,例如:"line1\nline2\nline3\n"

切断结尾换行符以便我得到"line1\nline2\nline3" 的最佳方法是什么?

为了安全起见,如果最后一个字符实际上是换行符时才被切断,那将是更可取的。因此,如果我的输入是 "field1=5\nfield2=abc\nfield3= some string \n",我想删除最后一个换行符,但保留两个空格。

【问题讨论】:

  • trim?
  • trim() 是个好主意,但我的列表行末尾包含空格的可能性很小,让我再添加一个示例
  • 也许吧,但这些解决方案都不是“简单的”——我希望已经内置了一些东西,比如 Java StringUtils.chomp()
  • 无论如何建议通过 TC39,然后将其添加为欺骗的答案。但正如您从下面的答案中看到的那样,这些就是答案。
  • 好的,我明白了,所以 .replace(/\n+$/, '');那就是答案,谢谢。

标签: javascript string newline


【解决方案1】:

市面上有很多通用的解决方案,但 JavaScript 本身并没有真正包含专门用于删除特定字符的内置函数。但是,replace() 方法与正则表达式相结合,仍然可以很好地解决问题:

var string = "field1=5\nfield2=abc\nfield3=  some string  \n";
var trimmed = string.replace(/\n+$/, '');

【讨论】:

    【解决方案2】:

    试试:

    var str = "line1\nline2\nline3\n"
    if (str[str.length - 1] === '\n') str = str.substring(0, str.length - 1);
    console.log(str);
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 对不起......我可能误解了这个问题......我想他问如何删除字符串中的最后一个 /n (所以只有最后一个字符,如果那是 / n)。我没有提出批评或要求澄清......我试图提供和实际的答案......如果我没有,我道歉......
    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2010-10-31
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多