Шаблон (?<!\-\')
представляет собой отрицательный внешний вид , который соответствует местоположению, которому непосредственно не предшествует подстрока -'
, в то время как вы хотите потерпеть неудачу при совпадении, если есть либо -
или a '
в конце.
Вы можете использовать следующее решение, использующее нотацию regex literal , чтобы вам не приходилось писать шаблончтобы соответствовать всему вводу:
Validators.pattern(/[^-']$/)
Или, если строка может быть пустой,
Validators.pattern(/(?:^|[^-'])$/)
Шаблон (?:^|[^-'])$
соответствует либо началу строки (^
), либолюбой символ, кроме -
или '
(с помощью класса символов с отрицанием , [^-']
) и $
устанавливает конец строки.