【问题标题】:Displaying phone format XAML/c#显示手机格式 XAML/c#
【发布时间】:2015-03-16 09:05:48
【问题描述】:

在我的 windows phone 项目中,我希望用户以 xxx-xxx-xxxx 格式输入他的电话号码。不需要的国家代码。我试图实现正则表达式,但我没有做对。我只是希望它在用户输入时显示给用户,仅此而已。这是我用过的

^\(\d{3}\) ?\d{3}( |-)?\d{4}$

但无论我输入什么,我总是得到这个错误(在这种情况下为 5)“无法识别的转义序列”。我注意到,这只是参考斜线。当我在其后添加 "" 时,错误消失了,但我没有得到我想要的。在 XAML 级别上,是否有一种特殊的方式可以在文本框中输入数字?

提前致谢!

【问题讨论】:

  • 将您的模式定义为逐字字符串。 @"^\(\d{3}\) ?\d{3}( |-)?\d{4}$"
  • 谢谢,修复了“无法识别的转义序列”错误。你也能帮我把模式弄对吗?由于某种原因,我拥有的那个不工作。它不接受 xxx-xxx-xxxx 格式的数字,而只接受 xxxxxxxxxx 格式的数字。谢谢 :)

标签: c# regex xaml phone-number


【解决方案1】:

将您的正则表达式放在逐字字符串中,并将空格、连字符放在一个组中并将其设为可选。

@"^\(\d{3}\)([- ]?)\d{3}\1\d{4}$"

DEMO

【讨论】:

    【解决方案2】:

    要测试您的RegEx,您可以使用此站点:http://www.regexlib.com/RETester.aspx?AspxAutoDetectCookieSupport=1

    对于您的 xxx-xxx-xxxx 格式,我会使用它:^\d{3}-?\d{3}-?\d{4}$

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      相关资源
      最近更新 更多