【问题标题】:Validate a specific country Carrier operator phone number regex c#验证特定国家运营商的电话号码正则表达式 c#
【发布时间】:2017-06-20 12:27:53
【问题描述】:

我需要在 C# 中使用 RegEx 验证特定运营商的电话号码,例如94773650101 94是国家代码 77是运营商运营商也可以是76 如何在 C# 中使用 RegEx 验证这一点。我需要它的格式。

我试过了

var match = Regex.Match(mobileNo, @"\d947(\d7|6)\d{7}/");

【问题讨论】:

  • 请发布您到目前为止所尝试的内容。这不是一个为您提供可以复制粘贴的代码的网站。除非您的代码有问题,否则没有人可以帮助您。
  • 您好,感谢您的回复,var match = Regex.Match(mobileNo, @"\d947(\d7|6)\d{7}/");
  • 您需要什么类型的验证?如果它只是两个字符,则最好使用 string.Substring(2,2) 来获取该字段。如果您尝试测试电话号码中的字符数(包括空格),则正则表达式是合适的。
  • 我实际上需要为特定运营商验证特定模式, var match = Regex.Match(mobileNo, @"\d947(\d7|6)\d{7}/");这就是我到目前为止所做的

标签: c# regex


【解决方案1】:

一切都很简单,试试这个:^947[76]\d{7}$

您的正则表达式中有错误:\d947(\d7|6)\d{7}/

我已将其标记为粗体。你不需要在9477|6之前使用\d\d 是任意数字。 最后/ 呢?

前导零的 UPD:

^(00)?947[76]\d{7}$

【讨论】:

  • 非常感谢您的回答确实对我有用,还有一件事我怎么能说 94 前面可以多 2 个 00,有时可能不是太多所以我该如何改变我的模式根据那个场景。
  • @Isham,例如?
  • 可以有一个手机号码为0094763650397或94773596258我该如何合并这个场景。
  • 查看以上评论
  • 我有一个小问题,^(00)?947[76]\d{7}$ 在这种模式下,我需要将其更改为这种情况,而 94 也是可选的,但如果 00 是然后发送 94 应该是强制性的,我是否可以将这种情况合并到这种模式中。到目前为止,我将模式更改为 ^(00)?(94)?7[76]\d{7}$ 但如果输入 00,我无法强制 94。
猜你喜欢
  • 2023-04-10
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多