Flutter - 使用Regex验证电话号码

问题描述 投票:1回答:2

在我的移动应用程序中,我正在尝试使用regex验证电话号码。以下是条件。

  1. 电话号码必须包含10位数字。
  2. 如果我们使用国家代码,它可以是12位数。 (例如国家代码:+12,012)
  3. 数字之间不允许空格或不允许使用字符

简单来说,这里是唯一的“有效”电话号码

0776233475+94776233475094776233475

以下是我尝试过的,但它不起作用。

String _phoneNumberValidator(String value) {
    Pattern pattern =
        r'/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/';
    RegExp regex = new RegExp(pattern);
    if (!regex.hasMatch(value))
      return 'Enter Valid Phone Number';
    else
      return null;
  }

我怎么解决这个问题?

android ios regex dart flutter
2个回答
6
投票

您可以使第一部分可选匹配+或0后跟9.然后匹配10位数:

^(?:[+0]9)?[0-9]{10}$
  • ^字符串的开头
  • (?:[+0]9)?可选择匹配+0,然后是9
  • [0-9]{10}匹配10位数
  • $字符串结尾

Regex demo


5
投票

使用Regex进行验证

String validateMobile(String value) {
String patttern = r'(^(?:[+0]9)?[0-9]{10,12}$)';
RegExp regExp = new RegExp(patttern);
if (value.length == 0) {
      return 'Please enter mobile number';
}
else if (!regExp.hasMatch(value)) {
      return 'Please enter valid mobile number';
}
return null;
}                                                                                                
© www.soinside.com 2019 - 2024. All rights reserved.