首页 > 解决方案 > 如何在Angular 7中使用+登录验证国家代码?

问题描述

我有一个文本框。在那里,用户可以使用 + 号输入国家代码。

如果他只输入数字,我们不应该允许他。他必须使用 + 符号输入国家代码 ex: +91, +230, ... 我正在互联网上搜索正则表达式。我在 Angular 7 中找不到好的解决方案。

代码:

ngOnInit() {

    this.registerFormGroup = this.formBuilder.group({
      clientId: ['', Validators.compose([Validators.required, Validators.pattern('^[0-9]*$')])],
      mobileNumber: ['', Validators.compose([Validators.required, Validators.pattern('^[0-9]*$')])],
      email: ['', Validators.compose([Validators.required, Validators.email, Validators.maxLength(1000)]) ],
      countryCode: ['', Validators.compose([Validators.required, Validators.pattern('/^[- +()]*[0-9][- +()0-9]*$/')]), ],
    });

    }

标签: javascriptangularangular7

解决方案


尝试一个正则表达式,+并具有所需的位数

let regex = /^[+]\d{12}$/; // enter the total number if digits you want

let correct = '+911234567890'
let inCorrect = '911234567890'

console.log(regex.test(correct))
console.log(regex.test(inCorrect))

\d在角度形式的验证器中使用,看起来我们必须转义“反斜杠”,所以您的模式将如下所示:

Validators.pattern('^[+]\\d{12}$')

在此处查看示例:https ://stackblitz.com/edit/angular-hdctcl?file=src/app/app.component.html

或者,您可以使用:

Validators.pattern('^[+][0-9]{12}$')

推荐阅读