[英]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.