【发布时间】:2020-09-15 23:03:29
【问题描述】:
我在我的 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”表示为规则集。是否有某个设置我可以禁用以防止这种行为?
【问题讨论】:
-
我不认为那些斜线是 ever 实际上在字符串中。要获得实际的反斜杠,您需要 在字符串中 对其进行转义:
[-.\\w]。或者使用正确的正则表达式文字形式/.../,而不是传递字符串。
标签: angular typescript prettier