思想是逐个字符串判断是否为数字,若str[i]为数字则累加isnumcount,直到isnumcount=11,则移除掉这11个字符串,在此未做验证这11个字符串是否真的为手机号,
public string removetel(string addrinfo)
{
string addr = "";//返回无电话地址
int strat = 0;//标记手机号开始位置
int isnumcount = 0;//连续数字位数
for (int i = 0; i < addrinfo.Length; i++)
{
string str = addrinfo[i].ToString();//逐个字符判断是否为数字
bool checknum = isPureNum(str);//判断数字
if (checknum)//是数字
{
isnumcount++;
if (isnumcount == 1)
{
strat = i;
}
if (isnumcount == 11)
{
addr = addrinfo.Remove(strat, 11);
break;
}
}
else//不是数字
{
isnumcount = 0;
strat = 0;
}
}
return addr;
}
/// <summary>
/// 判断字符是否为数字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public bool isPureNum(string str)
{
if (str.Length == 0 || str == null)//验证这个字符串是否为空
{
return false;
}
byte[] strBytes = Encoding.ASCII.GetBytes(str);//获取字符串的byte类型的字符数组,编码方式ASCII
foreach (byte strByte in strBytes)
{
if ((strByte < 48) || (strByte > 57)) //判断每个字符是否为数字,根据每个字符的ASCII值所在范围判断
{
return false; //不是,就返回false
}
}
return true; //是,就返回true
}