C# 电话号码的判断

英文字母打字员 2011-10-11 02:46:06
前台输入电话号码形式为
1 010-123456789
2 123456789
3 010-123456789,123456789,23456789

这个判断要怎么做啊。。。。。判断输入的电话是否正确。。。。。。
...全文
602 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
WangxiaoluWang 2011-10-11
  • 打赏
  • 举报
回复
请用正则,正则很强大…
Kenall 2011-10-11
  • 打赏
  • 举报
回复
用正则表达式做,下面一个例子仅供参考

/// 名称:IsMobilePhone
/// 功能:判断输入的是否为手机号码
/// </summary>
/// <param name="input">传入一个字符串</param>
/// <returns>bool值</returns>
public static bool IsMobilePhone(string input)
{
Regex regex = new Regex("^1\\d{10}$");
return regex.IsMatch(input);
}
/// <summary>
  • 打赏
  • 举报
回复
int n;
string result = "";
result = number.Replace("-","");
result = result.Replace(",", "");
result = result.Replace(" ", "");
if (int.TryParse(result, out n))
{
return true;
}
else
{
return false;
}


直接去除符号做判断,犀利去吧
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wuguoxian001 的回复:]
楼主不会是张维吧!
[/Quote]

哪位不认识。。哈哈
wuguoxian001 2011-10-11
  • 打赏
  • 举报
回复
楼主不会是张维吧!
  • 打赏
  • 举报
回复
8#的程序有BUG
pmars 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wanglejun 的回复:]

引用 6 楼 pmars 的回复:
C# code
string[] numbers = File.ReadAllText(@"D:/Paging.txt").Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

Regex regex = new Regex(@"……
……
[/Quote]
D:/Paging.txt这个文件里面的数据都是做测试用的啊,你不是要去正则电话么?
囧了!
萤火架构 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wanglejun 的回复:]

引用 6 楼 pmars 的回复:
C# code
string[] numbers = File.ReadAllText(@"D:/Paging.txt").Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

Regex regex = new Regex(@"……
……
[/Quote]

使用正则判断,最主要的是匹配规则。

验证电话号码的主要代码如下:

public bool IsTelephone(string str_telephone)

{

return System.Text.RegularExpressions.Regex.IsMatch(str_telephone, @"^(\d{3,4}-)?\d{6,8}$");

}

验证手机号码的主要代码如下:

public bool IsHandset(string str_handset)

{

return System.Text.RegularExpressions.Regex.IsMatch(str_handset, @"^[1]+[3,5]+\d{9}");

}


koumingjie 2011-10-11
  • 打赏
  • 举报
回复

/// <summary>
/// 校验一个字符串是否为电话号码
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool IsPhoneNum(string _value)
{
Regex regex = new Regex(@"^(86)?(-)?(0\d{2,3})?(-)?(\d{7,8})(-)?(\d{3,5})?$", RegexOptions.IgnoreCase);
return regex.Match(_value).Success;
}
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 pmars 的回复:]
C# code
string[] numbers = File.ReadAllText(@"D:/Paging.txt").Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

Regex regex = new Regex(@"……
[/Quote]

什么意思的???
pmars 2011-10-11
  • 打赏
  • 举报
回复
            string[] numbers = File.ReadAllText(@"D:/Paging.txt").Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

Regex regex = new Regex(@"(^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)");

foreach (var num in numbers)
{
Console.WriteLine(regex.Match(num));
}
Console.ReadKey();
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shenzhenchina 的回复:]
菜鸟的回答,就是判断每一个输入的字符为你设定的输入值。
[/Quote]

呵呵 我想把特殊符号去除 然后直接判断是否为数字就OK了
shenzhenchina 2011-10-11
  • 打赏
  • 举报
回复
菜鸟的回答,就是判断每一个输入的字符为你设定的输入值。
欢乐的小猪 2011-10-11
  • 打赏
  • 举报
回复
\d{9}
\d{3}-\d{9}
用逗号分隔,去匹配这两个正则
  • 打赏
  • 举报
回复
没人说说吗??????

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧