C# c正则表达式匹配所有斯里兰卡电话号码
我在谷歌上找不到斯里兰卡电话号码的正则表达式; 格式如下: 775645645 9位 0775645645 10位 +94775645645 它应该以7或0或+94开头。有人能帮我吗。 感谢您的解决方案 让我们构建模式: 所以我们有C# c正则表达式匹配所有斯里兰卡电话号码,c#,regex,validation,C#,Regex,Validation,我在谷歌上找不到斯里兰卡电话号码的正则表达式; 格式如下: 775645645 9位 0775645645 10位 +94775645645 它应该以7或0或+94开头。有人能帮我吗。 感谢您的解决方案 让我们构建模式: 所以我们有 string pattern = @"^(?:7|0|(?:\+94))[0-9]{9,10}$"; 测试: string[] tests = new string[] { "775645645", "
string pattern = @"^(?:7|0|(?:\+94))[0-9]{9,10}$";
测试:
string[] tests = new string[] {
"775645645",
"0775645645",
"+94775645645",
"123456669",
"1234566698888",
"+941234566698888",
"+94123456"
};
string pattern = @"^(?:7|0|(?:\+94))[0-9]{9,10}$";
string report = string.Join(Environment.NewLine, tests
.Select(item => $"{item,-20} : {(Regex.IsMatch(item, pattern) ? "Matched" : "Not")}"));
Console.Write(report);
结果:
775645645 : Matched
0775645645 : Matched
+94775645645 : Matched
123456669 : Not
1234566698888 : Not
+941234566698888 : Not
+94123456 : Not
有效电话号码类型:-
0771234567
771234567
+94771234567
94771234567
0111234567本地代码
^7 | 0 |?:\+94[0-9]{9,10}$这是一个很酷的站点,非常容易使用。我尝试将此用于angular+94775645645,这给了我不匹配的状态。如果我扣除一个数字,它将显示为有效。我认为语言不是问题,正则表达式对每个人都是一样的,对吗?这是我的代码验证器。模式“^7 | 0 |?:\\+94[0-9]{9,10}$”@Sahan Pasindu Nirmal:请你把评论变成一个问题好吗?用Angular标记它,并不仅仅提供验证器。模式“^7 | 0 |?:\\+94[0-9]{9,10}$”,而是上下文如何在输入数据上应用验证器?在Angular中,我们可以使用此方法指定模式验证。模式完整代码如下所示。registrationForm=this.fb.group{userName:[null,Validators.compose[Validators.maxLength30,Validators.pattern'[a-zA-Z]*',Validators.required]],您遗漏了整个正则表达式的括号,因为它匹配任何以7开头的字符串或任何包含0的字符串,请参见:@Toto:我明白了,很好的捕获!谢谢!您应该使用字符类,而不是这些长的替换,例如[0-25-8]而不是0 | 1 | 2 | 5 | 6 | 7 | 8
775645645 : Matched
0775645645 : Matched
+94775645645 : Matched
123456669 : Not
1234566698888 : Not
+941234566698888 : Not
+94123456 : Not
String regexPhoneNumber = "^(?:0|94|\\+94)?(?:(11|21|23|24|25|26|27|31|32|33|34|35|36|37|38|41|45|47|51|52|54|55|57|63|65|66|67|81|912)(0|2|3|4|5|7|9)|7(0|1|2|5|6|7|8)\\d)\\d{6}$";