从字符串中删除最后一行

问题描述 投票:13回答:4

如果我不知道字符串有多大,如何从字符串中删除最后一行“\ n”?

var tempHTML = content.document.body.innerHTML;
var HTMLWithoutLastLine = RemoveLastLine(tempHTML);

function RemoveLastLine(tempHTML)
{
   // code
} 
javascript jquery
4个回答
21
投票

尝试:

if(x.lastIndexOf("\n")>0) {
    return x.substring(0, x.lastIndexOf("\n"));
} else {
    return x;
}

9
投票

您可以使用正则表达式(根据“最后一行”的含义进行调整):

return x.replace(/\r?\n?[^\r\n]*$/, "");

1
投票

正则表达式会做到这一点。这是最简单的一个:

string.replace(/\n.*$/, '')

See regex101 for how it works

\n匹配字符串中的最后一个换行符

.*匹配任何字符,在零和无限次之间(行终止符除外)。无论最后一行是否有内容,这都有效

$匹配字符串的结尾


0
投票

在您的特定情况下,该功能可能看起来像:

function(s){
  return i = s.lastIndexOf("\n")
    , s.substring(0, i)
}

虽然你可能不希望最后有空格;在这种情况下,简单的替换可能会很好:

s.replace(/s+$/, '')

请记住,新版本的Javascript(ES6 +)提供了使用内置原型函数(trimtrimLefttrimRight)的简写方法。

s.trimRight()

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.