繁体   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