gpt4 book ai didi

javascript - Angular FormControl 模式验证器不适用于正则表达式

转载 作者:行者123 更新时间:2023-12-02 22:43:56 26 4
gpt4 key购买 nike

我试图对文本输入进行一些限制。

我希望它只接受:

  • 字母数字字符(a-z A-Z 0-9)
  • 3 个特殊字符(逗号、破折号、单引号):, - '
  • 一些重音字符:à â ç è é ê î ô ù û
  • 空格

所以我声明一个带有正则表达式模式的验证器,如下所示:

this.form.addControl('adresseLine2', new FormControl('', Validators.pattern(PatternValidatorEnum.ADRESS_CONTENT)));

还有ADRESS_CONTENT正则表达式如下:

ADRESS_CONTENT = '^[A-Za-z0-9\',\-àâçèéêîôùû ]*$'

它似乎工作正常,但是,当我有大写重音字符时,输入保持有效,例如: É

我希望它只接受小写重音字符 ( àâçèéêîôùû )

根据https://regex101.com/r/6vyA8H/1 :dsdséàê ké应该是有效的输入,但是 dsdséàê kÉ不应该。

但是,根据我的输入,两者均被视为有效。

此外,我的输入接受诸如 . 之类的字符, ; , /根据正则表达式,它不应该出现。

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

最佳答案

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

'^[A-Za-z0-9\',\-àâçèéêîôùû ]*$'

/^[A-Za-z0-9\',\-àâçèéêîôùû ]*$/

将解决该问题。

关于javascript - Angular FormControl 模式验证器不适用于正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58489606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com