如何建立印度尼西亚电话号码正则表达式

时间:2013-01-31 03:30:02

标签: c# regex

这些是印度尼西亚的一些电话号码

  

08xxxxxxxxx(包括最小11个字符长度)

     

08xxxxxxxxxxx(始终以08开头)

我发现这个很有用

Regex regex = new Regex(@"08[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]");

但是,它只支持12个字符,如果我将它们更改为以下正则表达式

Regex regex = new Regex(@"08[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]");

它只支持11个字符,如何使验证的正则表达式以08开头且最小长度为11?

5 个答案:

答案 0 :(得分:4)

^08[0-9]{9,}$

{9,}表示“至少9”,但可能更多。

我将其更改为9以计算两个前导数字(最多可加11)。

答案 1 :(得分:2)

08\d{9,10}

翻译为“以08开头”;最少11个,最长12个。

编辑:计数。

答案 2 :(得分:1)

这种模式怎么样?

^08\d{9,10}$

这将检查包含08

在内的11到12个字符

答案 3 :(得分:0)

我会添加更多完整版本,这里是(带数字分组)

([\[\(])?(?:(\+62)|62|0)\1? ?-? ?8(?!0|4|6)\d(?!0)\d\1? ?-? ?\d{3,4} ?-? ?\d{3,5}(?: ?-? ?\d{3})?\b

它会接受这样的格式

(0811) 123 123

[62] 812 1234567

0812 345 6789

+62856123456789

0878-123-123-123

[+62823] 1234 - 56789 --->我相信这是写作时间最长的电话号码

答案 4 :(得分:0)

((\+62 8\d{2}([ -])|08\d{2}([ -]?)|\+628\d{2})\d{4}(\3\4)\d{2,5})

这将接受最常用的样式,例如
08xx xxxx xxxx
08xxxxxxxxxxxx
08xx-xxxx-xxxx
+628xxxxxxxxxx
+62 8xx xxxx xxxx
+62 8xx-xxxx-xxxx
这也将检查 11-13 个长数字
对不起,语法虽然