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

时间:2016-09-08 17:14:29

标签: javascript angularjs string error-handling newline

我在服务中有这样的功能:

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"

这很简单,但是我已经把头撞到了桌子上一段时间了,而且非常令人沮丧。

有关如何使用new Error获取格式化好的消息并抓住它的任何建议吗?

2 个答案:

答案 0 :(得分:1)

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

道歉,从一开始就没有检查一些简单的东西。

答案 1 :(得分:0)

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

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

将返回:

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