如何在新错误对象 Javascript 的消息中添加换行符?

How to put a newline in the message of a new Error object Javascript?

我在这样的服务中有一个函数:

Policies 是一个函数列表,如果违反策略(例如密码没有数字或大写字母)将抛出错误

 function myFunction(policies, password){ 
  var policiesError = ''; 
  policies.forEach(function(policy) {      
    try {
      policy(password, payload);
    } catch (err) {
      policiesError += err.message + '\n';   // Also tried `concat()`
    }
  });
  if (policiesError){
    throw new Error(policiesError);
  }
}

在我的 controller 中,我有:

try{
  myService.myFunction(myFunctions, 'password');
} catch (err){
  $scope.policiesError = err.message; // Which is used in as {{policiesError}} to display   
}

控制器中消息的结果类似于:

"Password too shortPassword has no lettersInvalid characters in password"

但我实际上需要它:

"Password too short
Password has no letters
Invalid characters in password"

这很简单,但我已经用头撞了 table 一段时间了,这很令人沮丧。

关于如何使用 new Error 实现格式良好的消息并捕获它有什么建议吗?

所以,@Bergi 让我意识到问题出在 CSS 属性 关于 white-space- 我正在我们的代码中编写一个新功能,所以我没有移动任何 CSS 也没有想到它。 但是,是的,CSS 正在摆脱 Javascript 中添加的 \n

抱歉没有从一开始就检查这么简单的东西。

使用 \r\n 而不仅仅是 \n

throw new Error("\r\nLine 1 Error Description.\r\nLine 2 Error Description.");

会 return:

JavaScript Error line(102): // Your error with message below.
Line 1 Error Description.
Line 2 Error Description.