从字符串中删除最后一行

时间:2012-11-30 14:42:22

标签: javascript jquery

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

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

function RemoveLastLine(tempHTML)
{
   // code
} 

4 个答案:

答案 0 :(得分:21)

尝试:

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

答案 1 :(得分:9)

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

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

答案 2 :(得分:1)

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

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

See regex101 for how it works

\n匹配字符串

中的最后一个换行符

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

$匹配字符串的结尾

答案 3 :(得分:0)

在您的具体情况下,该功能确实如下:

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

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

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

请注意,新版本的Javascript( ES6 + )提供了使用内置原型函数(trimtrimLeft,{{3 }})

s.trimRight()

干杯!