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