簡體   English   中英

如何在新的錯誤對象 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"

這很簡單,但我已經把頭撞在桌子上有一段時間了,這很令人沮喪。

關於如何使用new Error並捕獲它來實現格式良好的消息的任何建議?

所以,@Bergi 讓我意識到問題出在關於white-space-的 CSS 屬性上white-space-我正在我們的代碼中編寫一個新功能,所以我沒有移動任何 CSS 並且沒有想到它。 但是,是的,CSS 正在擺脫在 Javascript 中添加的\\n

很抱歉沒有從一開始就檢查這么簡單的事情。

使用\\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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM