2012-11-30 8 views
11

文字列の大きさを知ることができない場合、文字列から最後の行 "\ n"を削除するにはどうすればよいですか?文字列の最後の行を削除する

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

function RemoveLastLine(tempHTML) 
{ 
    // code 
} 
+0

文/行、ない単語 – user1534664

+0

* *ラインをしてください定義の終わりに一致するように最後の行

$上のコンテンツがあるかどうか動作します。 – moonwave99

+0

最後の行は何ですか?それは一定であるか変化する可能性があります... – Scorpio

答えて

17

試してみてください。

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

ありがとうございます。テストされ、それは動作します。 – user1534664

+0

'x'に1行が含まれていれば動作しません(正確な必要性に応じて問題はないかもしれません)。 –

+0

@JulienRoyerあなたは正しいです。私は自分の答えを更新しました。あなたの答えはBtw +1。 – rekire

9

あなたは(あなたが "最後の行" で何を意味するかに応じて調整することにする)は、正規表現を使用することができます:あなたの特定のケースで

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

実際には次のようになります。

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

おそらく終わりにスペースを入れたくないのですが;この場合には、単純なはうまくいくかもしれません置き換える:

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

のJavascriptの新しいバージョン(ES6 +が)でこれを行うための速記の方法を提供することが心に留めておいてください内蔵のプロトタイプの機能(trimtrimLefttrimRight

s.trimRight() 

乾杯!

0

正規表現で行います。ここでは最も簡単な1だ:

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

See regex101 for how it works

\nは、文字列の最後の改行にマッチし

.*はゼロと(行末を除く)無制限の時間の間の任意の文字に一致します。だから、これは文字列

関連する問題