【发布时间】:2019-10-21 15:34:22
【问题描述】:
我正在尝试对文本输入进行一些限制。
我希望它只接受:
- 字母数字字符 (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É 不应该。
但是,在我的输入中,两者都被认为是有效的。
此外,我的输入接受.、;、/ 等字符,而根据正则表达式,它不应该接受。
我错过了什么?此外,我可能在正则表达式中忘记了某些情况。
【问题讨论】:
-
ADRESS_CONTENT = '[A-Za-z0-9\',àâçèéêîôùû -]*'或ADRESS_CONTENT = /^[A-Za-z0-9',\-àâçèéêîôùû ]*$/都可以。
标签: javascript html regex angular forms