我需要编写一个正则表达式,该表达式对于电话号码是正确的,并带有一些规则:
1) max length 13 symbols
2) it should start from '+'
3) it should contain sonly numbers [0-9]
所以,例如,它应该是这样的:
+447289347598342745
答案 0 :(得分:2)
Regex re = new Regex(@"^\+\d{1,13}$");
在.NET中,您应该使用
[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);