如何在Window Phone 7的文本框中验证电话号码?

时间:2011-09-07 11:12:31

标签: windows-phone-7

我想将验证应用于存储10位电话号码的文本框

如何验证Windows Phone 7中文本框中的电话号码?

5 个答案:

答案 0 :(得分:3)

如果你想使用10号移动验证而不是 MaxLength =“10”中设置的电话号码,而只使用 InputScope =“TelephoneNumber”,这一切都在XAML方面像

<TextBox   Name="txtPhoneNo" Width="310"  Text=""  InputScope="TelephoneNumber" MaxLength="10" KeyDown="txtContactUsPhone_KeyDown" />

现在你的文本框和有害生物代码的genrate keydown事件..

private void txtContactUsPhone_KeyDown(object sender, KeyEventArgs e)
        {
            if (System.Text.RegularExpressions.Regex.IsMatch(e.Key.ToString(), "[0-9]"))
                e.Handled = false;
            else e.Handled = true;
        }

希望它能帮到你

由于

答案 1 :(得分:0)

请参考以下link,关于如何使用正则表达式验证电话号码的问题,在您的情况下一种方式将使用正则表达式中的正则表达式您绑定电话号码的属性,如果失败则抛出ValidationException,绑定时包含ValidatesOnException选项

喜欢

 public string PhoneNumber
 {
    get { return _phoneNumber; }
    set { 
       if (!IsValidPhoneNumber(value))
             throw new ValidationException("Invalid Phone Number");
       _phoneNumber = value;
     }
 }

带有类似

的绑定表达式
{Binding PhoneNumber, ValidatesOnException=True}

答案 2 :(得分:0)

你可以设置Textbox.Maxlength属性, 并将输入范围设置为仅数字。

谢谢。

答案 3 :(得分:0)

using System.Text.RegularExpressions;public static bool IsItNumber(string inputvalue){Regex isnumber = new Regex("[^0-9]");return !isnumber.IsMatch(inputvalue);}

public bool Main(string text)

{

  if ( !Regex.Match(text,@"^[1-9]\d{2}-[1-9]\d{2}-\d{4}$" ).Success )
  {
     return false
  }   else {
return true
}
   }

答案 4 :(得分:-1)

这很简单。简单的方法是在文本框中添加一个名为“PreviewTextInput”的事件处理程序。

<TextBox x:Name="txtbox_PhoneNum" PreviewTextInput="txtbox_PhoneNum_PreviewTextInput"/>

在.cs文件中,

private void txtbox_PhoneNum_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
        Regex reg = new Regex("[^0-9]+");
        e.Handled = reg.IsMatch(e.Text);
    }

如果e.Handled为true,则表示您正在输入字母字符,最后您可以通过此进行过滤。