簡體   English   中英

Prettier 移除 Angular 中的轉義字符

[英]Prettier removes escape characters in Angular

我在我的 Angular 項目中使用 Prettier,並且我正在嘗試為表單驗證器包含一個正則表達式模式。 當我運行 Prettier 時,字符串會從根本上改變以使模式驗證功能失調,如下所示:

前:

export const EmailVal: ScaffoldValidator = PatternVal(
  "/^[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$/"
);

后:

export const EmailVal: ScaffoldValidator = PatternVal(
  "/^[0-9a-zA-Z]([-.w]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+[a-zA-Z]{2,9}$/"
);

我已經閱讀了 Prettier Docs,它談到了在單引號和雙引號的上下文中更改轉義,但斷言其他轉義將保持不變。 我也瀏覽了我的tsLint.json ,沒有什么對我來說很突出。 它確實將“Codelyzer”表示為規則集。 我可以禁用某個設置以防止這種行為嗎?

您可以直接使用正則表達式(注意:沒有引號 - 只有斜杠):

/^[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$/;

或更正字符串轉義(注意雙反斜杠):

"/^[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9}$/";
                  ^^                                 ^^              ^^  

考慮使用 EsLint - 它可以警告您這些情況(請參閱no-useless-escape rule ): 在此處輸入圖像描述

暫無
暫無

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

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