Text.remove для форматирования номера телефона в vb.net - PullRequest
0 голосов
/ 31 октября 2011

У меня есть текстовое поле для номера телефона, которое форматирует номер телефона, чтобы оно выглядело следующим образом:

(123) 456-7891

, но я хочу, чтобы оно изменилось на просто цифры, когдапользователь закончил ввод данных:

1234567891

Вот мой код для форматирования числа:

        Dim newNumber As String
    If txtContactNumberNew.Text.Length = 0 Then
        txtContactNumberNew.Text = "N/A"
    ElseIf txtContactNumberNew.Text.Length = 10 Then
        newNumber = "(" & txtContactNumberNew.Text.Substring(0, 3) & ") " & txtContactNumberNew.Text.Substring(3, 3) & "-" & txtContactNumberNew.Text.Substring(6, 4)
        txtContactNumberNew.Text = newNumber
    ElseIf txtContactNumberNew.Text.Length > 10 Then
        newNumber = "(" & txtContactNumberNew.Text.Substring(0, 3) & ") " & txtContactNumberNew.Text.Substring(3, 3) & "-" & txtContactNumberNew.Text.Substring(6, 4) & " x " & txtContactNumberNew.Text.Substring(10)
        txtContactNumberNew.Text = newNumber
    ElseIf txtContactNumberNew.Text.Length < 10 Then
        MsgBox("Not enough Numbers! Please retype the Phone number", vbExclamation, "Not enough Numbers")
        Return
    End If

Поскольку я добавил круглые скобки, это изменило бы мой счет символов?Я просто хочу, чтобы форматирование было удалено после заполнения формы.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2011

Попробуйте использовать метод обрезки для удаления нежелательных символов.Затем вы можете получить количество символов результата.

 'List of characters to remove
  Dim charsToTrim() As Char = { "("c, ")"c, "-"c}
  Dim result As String = txtContactNumberNew.Text.Trim(charsToTrim)

взято из http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx

0 голосов
/ 31 октября 2011

Если вы просто хотите удалить (), вы не можете просто использовать замену из регулярного выражения

System.Text.RegularExpressions.Regex.Replace(str,"[\(|\)|\-|\s]","")
...