Javascript Angular FormControl模式验证程序不使用正则表达式

Javascript Angular FormControl模式验证程序不使用正则表达式,javascript,html,regex,angular,forms,Javascript,Html,Regex,Angular,Forms,我试图对文本输入有一些限制 我希望它只接受: 字母数字字符(a-z a-z 0-9) 3个特殊字符(逗号、破折号、单引号):,-' 几个重音字符:èèèèùè 空间 因此,我向输入声明一个带有正则表达式模式的验证器,如下所示: this.form.addControl('adresseLine2', new FormControl('', Validators.pattern(PatternValidatorEnum.ADRESS_CONTENT))); 而address\u内容regex

我试图对文本输入有一些限制

我希望它只接受:

  • 字母数字字符(a-z a-z 0-9)
  • 3个特殊字符(逗号、破折号、单引号):,-'
  • 几个重音字符:èèèèùè
  • 空间
因此,我向输入声明一个带有正则表达式模式的验证器,如下所示:

this.form.addControl('adresseLine2', new FormControl('', Validators.pattern(PatternValidatorEnum.ADRESS_CONTENT)));
address\u内容
regex如下所示:

ADRESS_CONTENT = '^[A-Za-z0-9\',\-àâçèéêîôùû ]*$'
它似乎工作得很好,但是,当我使用大写重音字符时,输入仍然有效,例如:
É

我希望它只接受小写重音字符(
字符)

根据:
dsdsêké
应为有效输入,但
dsdsêkê
不应为有效输入

但是,在我的输入中,两者都被认为是有效的

此外,我的输入还接受字符,如
/
当它不应该根据正则表达式


我错过了什么?另外,我可能在正则表达式中忘记了一些情况。

使用这个正则表达式模式怎么样

/^(?!À-Ö)[A-Za-z0-9\',\-àâçèéêîôùû ]*$/
您可以说排除上面的重音字符。这个正则表达式支持您的所有输入


Stackblitz:

这里的问题不是您的表达式,而是您使用
Validators.Pattern()
和字符串而不是
RegExp
类型,将表达式从

“^[A-Za-z0-9\',\-A-çèèèèèèèèùè]*$”

/^[A-Za-z0-9\',\-Açèèèèù]*$/


将解决此问题。

addressèu CONTENT='[A-Za-z0-9\',Aèèèèèèù-]*'
addressèu CONTENT=/^[A-Za-z0-9',\-Aèèèèèèè*$/
都将起作用。