С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 135
1

Проверка на наличие первой цифры 8 в номере телефона

26.03.2020, 20:05. Показов 1665. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня.

У меня есть форма на которой расположен MasketBox с маской (000) 000-00-00.

Подскажите как можно проверить является ли первой введеной цифрой 8
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2020, 20:05
Ответы с готовыми решениями:

Определить цифры, отсутствующие в номере телефона
Допустим у меня есть блок: int i=3; if(условие) { i=5; } Console.Writeline(i); Мне...

Определить, какие цифры отсутствуют в номере мобильного телефона
Задано номер мобильного телефона. Определить, какие цифры отсутствуют в этом номере. входные...

Задан номер мобильного телефона - определить, какие цифры отсутствуют в этом номере
Задан номер мобильного телефона. Определить, какие цифры отсутствуют в этом номере. Помогите!

Проверка на наличие цифры
Имеется програмка - пользователь вводит число с клавиатуры, оно записывается в переменную %var%....

10
4671 / 3625 / 856
Регистрация: 02.02.2013
Сообщений: 3,491
Записей в блоге: 2
26.03.2020, 20:20 2
Задайте маску (800) 000-00-00 и проверять не нужно.
0
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 135
26.03.2020, 23:22  [ТС] 3
Цитата Сообщение от ovva Посмотреть сообщение
Задайте маску (800) 000-00-00 и проверять не нужно.
Возможно, я что то не правильно описал.
В поле MaskedTextBox1 вставляется номер мобильного телефона
При этом если номер телефона указать стандартно 8999000000. то последняя цифра обрезается.
Необходимо сделать так, что бы если пользователь ввел номер телефона 8999000000 было уведомление о не корректности номера телефона.
0
2768 / 2828 / 547
Регистрация: 17.02.2019
Сообщений: 4,652
28.03.2020, 13:42 4
Лучший ответ Сообщение было отмечено Aleksey_25 как решение

Решение

Aleksey_25, пробуй
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim HOMEP1 As String = ""
    Private Sub MaskedTextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MaskedTextBox1.Click
        If Clipboard.GetText() = Nothing Then Exit Sub 'если пустой буфер
        Dim HOMEP As String = Clipboard.GetText() 'извлекаем что скопировали
        If HOMEP(0) = "8" Then 'первый символ 8
            Clipboard.Clear() 'удаляем буфер
            For a = 1 To HOMEP.Length - 1
                HOMEP1 += HOMEP(a) 'запись без 8
            Next
            Clipboard.SetText(HOMEP1) 'записываем в буфер
        End If
        MaskedTextBox1.Text = Clipboard.GetText() 'вставка из буфера по клику мыши
        HOMEP1 = ""
    End Sub
1
4671 / 3625 / 856
Регистрация: 02.02.2013
Сообщений: 3,491
Записей в блоге: 2
28.03.2020, 14:34 5
И все же если задать маску в виде 8-(000) 000-00-00 то никаких недоразумений не должно возникать.
Цитата Сообщение от Aleksey_25 Посмотреть сообщение
При этом если номер телефона указать стандартно 8999000000. то последняя цифра обрезается.
В таком случае возникает событие MaskInputRejected которое нужно необходимым образом обработать.
1
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 135
31.03.2020, 17:39  [ТС] 6
Цитата Сообщение от January29 Посмотреть сообщение
пробуй
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim HOMEP1 As String = ""
    Private Sub MaskedTextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MaskedTextBox1.Click
        If Clipboard.GetText() = Nothing Then Exit Sub 'если пустой буфер
        Dim HOMEP As String = Clipboard.GetText() 'извлекаем что скопировали
        If HOMEP(0) = "8" Then 'первый символ 8
            Clipboard.Clear() 'удаляем буфер
            For a = 1 To HOMEP.Length - 1
                HOMEP1 += HOMEP(a) 'запись без 8
            Next
            Clipboard.SetText(HOMEP1) 'записываем в буфер
        End If
        MaskedTextBox1.Text = Clipboard.GetText() 'вставка из буфера по клику мыши
        HOMEP1 = ""
    End Sub
А если я хочу привязать данную проверку на кнопку, как это сделать, а то при попытке его разместить происходит очистка MaskedTextBox1 хотя в коде нет очистки данного поля.

Добавлено через 41 секунду
Цитата Сообщение от ovva Посмотреть сообщение
В таком случае возникает событие MaskInputRejected которое нужно необходимым образом обработать.
Можете подсказать как это сделать?

Добавлено через 15 секунд
Цитата Сообщение от ovva Посмотреть сообщение
В таком случае возникает событие MaskInputRejected которое нужно необходимым образом обработать.
Можете подсказать как это сделать?
0
4671 / 3625 / 856
Регистрация: 02.02.2013
Сообщений: 3,491
Записей в блоге: 2
31.03.2020, 18:25 7
Цитата Сообщение от ovva Посмотреть сообщение
В таком случае возникает событие MaskInputRejected которое нужно необходимым образом обработать
Здесь нужно знать, что вы собираетесь предпринять, если имеет место некоторая некорректность. Например, я просто выделяю всю маску.
VB.NET
1
2
3
4
Private Sub MaskedTextBox1_MaskInputRejected(sender As System.Object, e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected
    MaskedTextBox1.SelectionStart = 0
    MaskedTextBox1.SelectionLength = MaskedTextBox1.Mask.Length
End Sub
Я бы еще добавил
VB.NET
1
2
3
Private Sub MaskedTextBox1_MouseClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MaskedTextBox1.MouseClick
    MaskedTextBox1.SelectionStart = 0
End Sub
Пользователь делает Click, и курсор ввода устанавливается в начало маски и можно вводить номер с клавиатуры.
1
2768 / 2828 / 547
Регистрация: 17.02.2019
Сообщений: 4,652
31.03.2020, 20:16 8
Aleksey_25,

"А если я хочу привязать данную проверку на кнопку, как это сделать"

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim HOMEP1 As String = ""
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        If Clipboard.GetText() = Nothing Then Exit Sub 'если пустой буфер
        Dim HOMEP As String = Clipboard.GetText() 'извлекаем что скопировали
        If HOMEP(0) = "8" Then 'первый символ 8
            Clipboard.Clear() 'удаляем буфер
            For a = 1 To HOMEP.Length - 1
                HOMEP1 += HOMEP(a) 'запись без 8
            Next
            Clipboard.SetText(HOMEP1) 'записываем в буфер
        End If
        If MsgBox("Заменить номер " & HOMEP & " на номер " & HOMEP1, vbYesNo, "Замена") = MsgBoxResult.Yes Then
            MaskedTextBox1.Text = Clipboard.GetText() 'вставка из буфера
            HOMEP1 = ""
        End If
    End Sub
1
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 135
31.03.2020, 20:32  [ТС] 9
Цитата Сообщение от ovva Посмотреть сообщение
Здесь нужно знать, что вы собираетесь предпринять, если имеет место некоторая некорректность. Например, я просто выделяю всю маску.
хотелось бы, что бы если пользователь ввел номер телефона в 89110000000, то происходило следующее:
1. удаляется 8 (лишний символ)
2. телефон приводится в формат 9110000000
0
2768 / 2828 / 547
Регистрация: 17.02.2019
Сообщений: 4,652
31.03.2020, 20:52 10
Aleksey_25,
"хотелось бы, что бы если пользователь ввел номер телефона в 89110000000, то происходило следующее:
1. удаляется 8 (лишний символ)
2. телефон приводится в формат 9110000000"

VB.NET
1
2
3
4
5
6
7
8
Private Sub MaskedTextBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles MaskedTextBox1.KeyDown
        If MaskedTextBox1.SelectionStart = 0 Or MaskedTextBox1.SelectionStart = 1 Then
            If e.KeyCode = Keys.D8 Then
                e.SuppressKeyPress = True
                Exit Sub
            End If
        End If
    End Sub
1
4671 / 3625 / 856
Регистрация: 02.02.2013
Сообщений: 3,491
Записей в блоге: 2
31.03.2020, 21:07 11
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub MaskedTextBox1_MaskInputRejected(sender As System.Object, e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected
    Dim s As String = MaskedTextBox1.Text
    If s(1) = "8" Then
        Dim ss() As String = s.Split({"("c, ")"c, "-"c, " "c}, System.StringSplitOptions.RemoveEmptyEntries)
        ss(0) = ss(0).TrimStart("8")
        s = String.Join("", ss)
        MaskedTextBox1.Text = s
        MaskedTextBox1.SelectionStart = MaskedTextBox1.Mask.Length - 1
        MaskedTextBox1.SelectionLength = 1
    Else
        'на случай какой-то другой ошибки (например ввели букву)
        MaskedTextBox1.SelectionStart = 0
        MaskedTextBox1.SelectionLength = MaskedTextBox1.Mask.Length
    End If
End Sub
1
31.03.2020, 21:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2020, 21:07
Помогаю со студенческими работами здесь

Проверка на наличие какой либо цифры. С++
Здравствуйте,помогите составить программу ,которая бы проверяла наличие цифры.Например:я ввожу...

Номере телефона в маске
Здравствуйте, как сделать , что бы в маску числа вводились с самого начала, а не с любого места в...

Замена в номере телефона
Убираю все не числа в номере телефона: $tel = preg_replace('/\D*/', '', $tel); Подскажите, как...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru