每 x 个字符添加换行符(使用 jquery / angular)

Adding line breaks every x characters (using jquery / angular)

我想使用此代码每 10 个字符自动添加一个换行符:

HTML :

<div ng-app="">
  <textarea id="chat" ng-model="msg"></textarea>
  <span class="msg" ng-bind="msg"></span>
</div>

自然地,当我在文本区域中键入内容时,它会出现在跨度下方。但我希望它像每 10 个字符有一个换行符一样工作。

我试过了:

JQuery :

var n = $('#chat').val().length;
if (n%10 == 0 && n > 0) {
  $('.msg').append('<br>');
}

以及许多其他事情,例如将 < br > 替换为 '\n',将 .append 替换为 .appendTo,但无论我尝试什么,出现在跨度中的文本都只是一行。我还尝试了我在这个网站上找到的解决方案,比如使用 "white-space:pre;" 或使用

...
来设计跨度。我想提一下,我是 AngularJS.

的新手

If 行不通,你必须像这样循环遍历文本

   $("#chat").keyup(function(){
     var msg = $(this).val();
     var span_msg='';
     for(var i=0; i<msg.length; i++)
      span_msg+=msg[i]+(i==10?"<br>":"");
     $('.msg').html(span_msg);
    });

Angular方式:

过滤器:

app.filter('addBr', function($sce){

    return function(input, length) {

        return $sce.trustAsHtml(input.match(new RegExp(".{1," + length + "}", 'g')).join("<br/>"));

    };
});

控制器:

$scope.test = "Professional lorem ipsum generator for typographers";

查看:

<div ng-bind-html="test | addBr: 20"> </div>

我希望这会奏效,对我来说确实如此。