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):
我在我的 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):