отформатируйте строку к номеру телефона США в vb.net

так же, как вопрос говорит. Я получаю числа как 2125550938 или 20298277625552. они должны измениться на (212) 555-0938 и (202) 982-7762 x 5552 соответственно. это находится в vb.net

9
задан lkewo 21 June 2010 в 20:34
поделиться

2 ответа

Dim newNumber As New String
If number.Length = 10 Then
   newNumber = "(" & number.Substring(0, 3) & ") " & number.Substring(2, 3) & "-" & number.Substring(5, 4)
ElseIf number.Length = 14 Then
    newNumber = "(" & number.Substring(0, 3) & ") " & number.Substring(2, 3) & "-" & number.Substring(5, 4) & " x " & number.Substring(9)
End if 
0
ответ дан 4 December 2019 в 11:03
поделиться

Я бы, вероятно, выбрал реализацию регулярных выражений, примерно так:

    Dim phoneNumbers() As String = {"2125550938", _
        "20298277625552", _
        "2025551212378", _
        "202555131345943"}

    Dim ext As String = ""

    Dim r As New Regex("^(?<AC>\d{3})(?<First>\d{3})(?<Last>\d{4})(?<Ext>\d*$)")
    Dim m As Match

    For i As Int32 = 0 To (phoneNumbers.Length - 1)
        m = r.Match(phoneNumbers(i))
        If m.Groups("Ext").Length > 0 Then
            ext = " x " & CStr(m.Groups("Ext").Value)
        Else
            ext = ""
        End If
        Console.WriteLine("({0}) {1}-{2}{3}", _
            CStr(m.Groups("AC").Value), _
            CStr(m.Groups("First").Value), _
            CStr(m.Groups("Last").Value), ext)
    Next

    Console.Read()

Это позволит использовать телефонные номера без расширений или с расширениями переменной длины.

3
ответ дан 4 December 2019 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: