Ответ 1
Try:
if(x.lastIndexOf("\n")>0) {
return x.substring(0, x.lastIndexOf("\n"));
} else {
return x;
}
Как удалить последнюю строку "\n" из строки, если я не знаю, насколько велика строка?
var tempHTML = content.document.body.innerHTML;
var HTMLWithoutLastLine = RemoveLastLine(tempHTML);
function RemoveLastLine(tempHTML)
{
// code
}
Try:
if(x.lastIndexOf("\n")>0) {
return x.substring(0, x.lastIndexOf("\n"));
} else {
return x;
}
Вы можете использовать регулярное выражение (настраиваться в зависимости от того, что вы подразумеваете под "последней строкой" ):
return x.replace(/\r?\n?[^\r\n]*$/, "");
В вашем конкретном случае функция действительно может выглядеть так:
function(s){
return i = s.lastIndexOf("\n")
, s.substring(0, i)
}
Хотя, вероятно, вы также не хотите иметь пробелы в конце; в этом случае простая замена может работать хорошо:
s.replace(/s+$/, '')
Помните, однако, что новые версии Javascript (ES6 +) предлагают сокращенные способы выполнения этого со встроенными функциями прототипа (trim, trimLeft, trimRight)
s.trimRight()
Ура!
Регулярное выражение сделает это. Здесь самый простой:
string.replace(/\n.*$/, '')
См. regex101 о том, как он работает
\n
соответствует последнему разрыву строки в строке
.*
соответствует любому символу, от нуля до неограниченного времени (кроме терминаторов строк). Таким образом, это работает независимо от того, есть ли контент в последней строке
$
, чтобы соответствовать концу строки