6

何年も前に、Firefox アドオンの 1 つに、プラットフォーム固有の改行文字を取得するのに役立つ次の関数を書きました。

GetNewLine: function()
{
    var platform = navigator.platform.toLowerCase();

    if(platform.indexOf('win') != -1) // Windows
        return "\r\n";
    else if(platform.indexOf('mac') != -1) // Mac
        return "\r";
    else // *nix
        return "\n";
}

これは問題ないようですが、ウィキペディアの改行記事を読んで、最近の Apple オペレーティング システム (OS X 以降) が UNIX スタイルの\n行末を使用していることに気付きました。そのため、私の小さな関数は、その場合に間違ったものを返す可能性があります (テストする Mac OS がありません)。

Firefox にプラットフォーム固有の改行文字を教えてもらう方法はありますか? おそらくある種の組み込みユーティリティ関数でしょうか?拡張機能が書き込むテキスト ファイルでこれらの改行を使用していますが、さまざまなシステムでファイルが適切に見えるように、プラットフォーム固有のものを使用したいと考えています。

更新 (2013 年 2 月 13 日):navigator.platform.toLowerCase() Mac-mini (OS X) で関数呼び出しを実行すると、出力 value が得られますmacintel。これにより、関数が本来\rの代わりに返さ\nれます。

4

3 に答える 3

0

テキストを改行で分割するだけかどうかを判断する必要はありません。次のようにすることができます。

htmlstring = sNewLine.replace(/(\r\n|\n|\r)/gm, "<br>");

基礎となる Web サーバーの改行が必要な場合は、Ajax 呼び出しで取得し、ASP.NET を使用している場合は次のようなものを返すことができます。

Environment.NewLine
于 2013-02-17T22:15:05.810 に答える