首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2: Validators.pattern()不工作

角2: Validators.pattern()不工作
EN

Stack Overflow用户
提问于 2017-02-22 13:08:22
回答 9查看 131.6K关注 0票数 49

我正在尝试使用模式验证输入type="text"。我只想要短信。

构成部分:

代码语言:javascript
复制
 this.from = this.fb.group({
  name: ['',[Validators.required,Validators.pattern('/^[a-zA-Z]+$/')]],

});

Html:

代码语言:javascript
复制
<input type="text" formControlName="name"/> // omitting other html template like from tag.

上面的模式验证对我不起作用。它总是返回无效状态。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2017-02-22 13:29:53

以字符串形式传递模式,而不使用/,后者是正则表达式的分隔符

代码语言:javascript
复制
Validators.pattern('^[a-zA-Z]+$')
票数 78
EN

Stack Overflow用户

发布于 2018-03-04 19:49:44

记住不要这样做:

代码语言:javascript
复制
Validators.pattern("[A-Z]{1,2}[0-9][0-9A-Z]?\s?[0-9][A-Z]{2}")

缺点是,在s之前需要一个双反斜杠才能击败字符串转义,因此:

代码语言:javascript
复制
Validators.pattern("[A-Z]{1,2}[0-9][0-9A-Z]?\\s?[0-9][A-Z]{2}")
票数 40
EN

Stack Overflow用户

发布于 2018-04-27 18:41:39

我在另一个模式上也有同样的问题:

代码语言:javascript
复制
^\d{1,4}$

我就是这样用的:

代码语言:javascript
复制
Validators.pattern("^\d{1,4}$") // wrong

问题是反斜杠\必须转义,所以正确的形式是:

代码语言:javascript
复制
Validators.pattern("^\\d{1,4}$") // correct
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42392373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档