2016.10.22
2017.5.26

改行コードをHTMLの<br>に置換して表示する方法

改行コードをAngularJSの「filter」を使って画面表示時に<br>に置換する方法です。

コード

JavaScript


angular.module('myApp', ['ngSanitize'])
.filter("replaceHtmlLine", function(){
    return function (str, exp) {
        return str.replace(/\\n|\r\n|\r|\n/g, "<br>");
    };
});

HTML


<div ng-bind-html="message | replaceHtmlLine"></div>

ポイントは「ngSanitize」モジュールを利用していることと、変換後の文字列を「ng-bind-html」でバインドしている点です。

実際の表示

あいうえお\\nかきくけこ\nさしすせそ

という文字列をfilterを通して表示すると、

あいうえお
かきくけこ
さしすせそ

のように表示されます。

AngularJS】関連記事