Flutter正则表达式,用于验证手机号码

时间:2019-08-25 08:01:07

标签: regex flutter

我已经将此正则表达式编写为用于验证用户手机号码,但无法正常工作。

String mobileNumber = '09328076432';
Pattern pattern = r'^(?:[+0]9)?[0-9]{10}$';
RegExp regex = RegExp(pattern);
print(regex.hasMatch(mobileNumber));

验证所有字符应为整数,长度应为11个字符,并以09开头

2 个答案:

答案 0 :(得分:1)

您的正则表达式试图匹配09后跟10位数字,而您愿意匹配09后跟9位数字的字符串

因此您可以将正则表达式更改为此

^\+?09[0-9]{9}$
  • ^-字符串的开头
  • \+?-匹配+(可选)
  • 09-从字面上匹配09
  • [0-9]{9}-匹配0到9、9次之间的任何数字
  • $-字符串结尾

答案 1 :(得分:1)

使用正则表达式验证:

String validateMobile(String value) {
String pattern = r'(^(?:[+0]9)?[0-9]{10,12}$)';
RegExp regExp = new RegExp(pattern);
if (value.length == 0) {
     return 'Please enter mobile number';
}
else if (!regExp.hasMatch(value)) {
     return 'Please enter valid mobile number';
}
     return null;
}  
相关问题