我在WPF(C#,VS 08)App中存储了不同长度的电话号码。
我将它们存储为字符串。我的问题是我的方法AddNewPhoneNo(string phoneNo)
。
在这种方法中,我使用Int.TryParse
来验证传入的数字(即非空,是数字......)。我已经意识到这可能不是最好的方法,因为那时我被限制在±2147483647的数字。绝对不是电话号码的情况。
验证电话号码的好方法是什么?我想基本规则如下:
如果现在还有更多的规则,那就不可能了,那可能是它。
答案 0 :(得分:1)
RegEx模式如何:http://regexlib.com/REDetails.aspx?regexp_id=45 8
答案 1 :(得分:1)
你可以尝试Int64.TryParse
,它会给你一系列的范围±9223372036854775807
答案 2 :(得分:1)
如果您的约束条件是字符串必须不为null,只有数字和< = 25个字符,那么您只需执行以下操作:
static bool IsValidPhoneNumber(string phoneNumber)
{
return !string.IsNullOrEmpty(phoneNumber)
&& (phoneNumber.Length <= 25)
&& phoneNumber.All(c => char.IsNumber(c));
}
如果您的约束更复杂(例如,字符串可以包含数字分组,如“123-456-7890”或括号如“(123)4567890”),那么您应该使用RegEx。