我需要写一个正则表达式,这将是对于一些规则的电话号码是否正确:如何写一个正则表达式
1) max length 13 symbols
2) it should start from '+'
3) it should contain sonly numbers [0-9]
因此,举例来说,它应该是这样的:
+447289347598342745
我需要写一个正则表达式,这将是对于一些规则的电话号码是否正确:如何写一个正则表达式
1) max length 13 symbols
2) it should start from '+'
3) it should contain sonly numbers [0-9]
因此,举例来说,它应该是这样的:
+447289347598342745
Regex re = new Regex(@"^\+\d{1,13}$");
在.NET中的超过13个OCCURENCES,就应该把使用
[0-9]
而不是\d
,否则你应该指定RegexOptions.ECMAScript
。否则,正则表达式将匹配一个字符串,如+୧٢३੪૫
(其中包含各种脚本中的Unicode数字1-5)。 - Michael Liu
因此,无论使用:
Regex re = new Regex(@"^\+[0-9]{1,13}$");
// or
Regex re = new Regex(@"^\+\d{1,13}$", RegexOptions.ECMAScript);
也就是说,您可能还需要最小数字位数> 1。 – 2012-03-24 15:09:23
在.NET中,您应该使用'[0-9]'而不是'\ d',否则您应该指定'RegexOptions.ECMAScript'。否则,正则表达式将匹配一个字符串,如'+୧2345'(其中包含各种脚本中的Unicode数字1-5)。 – 2012-03-24 15:28:24
谢谢!我不知道。编辑 – 2012-03-24 15:45:25
这是功课? – 2012-03-24 15:04:25
您的示例的长度为18.(如果您计算+,则为19) – 2012-03-24 15:04:32