gpt4 book ai didi

c# - 如何在C#中将手机号码转换为国际格式

转载 作者:行者123 更新时间:2023-11-30 14:09:14 26 4
gpt4 key购买 nike

我必须将手机号码转换为国际格式。

例如:如果用户按以下格式输入数字:

0274 123 4567(Newzeland)
09916123764(India)

转换应该发生

+642741234567 (Newzeland)
+919916123764 (India)

尝试了很多正则表达式,但只有这些可以验证,但没有发生替换。

在 Stack overflow 中找到了一些类似的链接,但它是在 Python 中。

Formatting a mobile number to international format

对于正常的移动验证,我使用以下代码。

protected bool IsValidPhone(string strPhoneInput)
{
// Remove symbols (dash, space and parentheses, etc.)
string strPhone = Regex.Replace(strPhoneInput, @"[- ()\*\!]", String.Empty);

// Check for exactly 10 numbers left over
Regex regTenDigits = new Regex(@"^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$");
Match matTenDigits = regTenDigits.Match(strPhone);

return matTenDigits.Success;
}

谁能告诉我们如何将其转换为 C#。

最佳答案

为了后代,这里是 Google 的 LibPhoneNumber ( official repository ) 的 c# 端口。该库提供了多种验证和格式化电话号码的方法。

https://www.nuget.org/packages/libphonenumber-csharp/

这个库的例子。

string localPhoneNumber = "(555) 555-5555"
PhoneNumber pn = PhoneNumberUtil.Instance.Parse(localPhoneNumber, "US");
string internationalPhoneNumber = pn.Format(PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
//result +1-555-555-5555

关于c# - 如何在C#中将手机号码转换为国际格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30434836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com