从文本中提取电话号码

时间:2013-08-18 08:46:17

标签: c# windows-phone-7 textblock

我想构建一个获取字符串的方法(最好是文本块的文本),它会识别并突出显示字符串中的任何电话号码。目标是让用户点击任意数字并直接呼叫或发短信(使用适当的启动器)。

我该如何解决这个问题?有任何想法吗?提前谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用Regular expression执行此操作。

实施例: -

var s= new Regex(@"(\(?[0-9]{3}\)?)?\-?[0-9]{3}\-?[0-9]{4}",  
RegexOptions.IgnoreCase); //North American number

var text = "Some Texxt";
MatchCollection m= s.Matches(text);

答案 1 :(得分:0)

String s = "abc055667788abc";
string phoneNumber;
foreach(char c in s)
{
    if(Char.isNumber(c) || c == " " || c == "+")
    {
        phoneNumber = phoneNumber + c;
        minimumDigits++;
        if(minimumDigits >= 9)
        {
            NumberDetected(phoneNumber);
        }
    }
    else
    {
        minimumDigits = 0;
    }
}

NumberDetected(string rawNumber)
{ 
    int plusses = 0;
    foreach(char c in rawNumber)
    {
        if(c == "+")
        {
            plusses++;
        }
    }
    if(plusses <= 1)
    {
        if(rawNumber.StartsWith("+")
        {
            NumberDone(rawNumber);
        }
    }
    else
    {
        MessageBox.Show("Number contained too many plusses!");
    }
}