Prettier удаляет escape-символы в Angular - PullRequest
1 голос
/ 28 мая 2020

Я использую Prettier в своем проекте Angular и пытаюсь включить шаблон регулярного выражения для валидатора формы. Когда я запускаю 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}$/"
);

I Я просмотрел Prettier Docs, в котором говорится об изменении экранирования в контексте одинарных и двойных кавычек, но при этом утверждается, что другие экраны останутся нетронутыми. Я также прошел через свой tsLint.json, и ничто не выделяется для меня как источник. Он обозначает "Codelyzer" как набор правил. Есть ли параметр, который я могу отключить, чтобы предотвратить такое поведение?

1 Ответ

2 голосов
/ 28 мая 2020

Вы можете напрямую использовать регулярное выражение (примечание: без кавычек - только косые черты):

/^[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$/;

или исправьте escape-символы строки (обратите внимание на двойные обратные косые черты):

"/^[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9}$/";
                  ^^                                 ^^              ^^  

Подумайте об использовании EsLint - он может предупредить вас об этих случаях (см. правило бесполезного выхода ): enter image description here

...