正则表达式:防止字符串以特定的特殊字符结尾

Regex : Prevent a string to end with specif special characters

我在我的 Angular 应用程序下使用 反应式表单验证n。

我有一个表单验证条件,要求我的字符串不以 -'

我已经试过了,但似乎不起作用:

Validators.pattern('.*(?<!\-\')$')

建议 ?

(?<!\-\') 模式是一个 negative lookbehind,它匹配一个没有紧跟 -' 子字符串的位置,而如果有 [= =14=] 最后一个'

您可以使用以下使用 regex 文字 表示法的解决方案,这样您就不必编写模式来匹配整个输入:

Validators.pattern(/[^-']$/)

或者,如果字符串可以为空,

Validators.pattern(/(?:^|[^-'])$/)

(?:^|[^-'])$ 模式匹配字符串的开头 (^) 或除 -' 之外的任何字符(借助 negated character class[^-']) 和 $ 断言字符串结束。