rbnsubedi Ответов: 2

Проверка текстового поля мобильного номера


using System.Text.RegularExpressions;

Regex re = new Regex("^9[0-9]{9}");
if (re.IsMatch(txtMob.Text.Trim()) == false || txtMob.Text.Length > 10)
{
  MessageBox.Show("Invalid  Mobile Number !!");
  txtMob.Focus();
}


Я реализовал приведенный выше код, и он отображает недопустимый номер мобильного телефона для любого заданного номера.

Я хотел бы реализовать проверки, которые показывали бы сообщение "символы не разрешены", когда вводятся какие-либо символы, и показывали бы сообщение о недопустимом номере, когда вводится более 10 цифр.

Пожалуйста, помогите мне!

2 Ответов

Рейтинг:
12

Rajesh Lagaria

на событие нажатие текстовое поле написать этот код :

private void txy_Keypress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsNumber(e.KeyChar) & (Keys)e.KeyChar != Keys.Back & (Keys)e.KeyChar != Keys.Enter)
            {

                e.Handled = true;
            }

            base.OnKeyPress(e);
        }

а на событии TextChanged напишите этот код :

if (txtMob.Text.Length > 10)
{

MessageBox.Show("Invalid Mobile Number !!");

txtMob.Focus();
}


или установить текст Maxlenth proparty set 10


надеюсь это поможет


rbnsubedi

Благодарить U так много!!! его работы!!!сыры:)

Sergey Alexandrovich Kryukov

Это не так уж плохо. Я проголосовал 5, не согласен с голосованием 1. Хорошо, что ключи есть.Спина принимается во внимание. Поверх этого можно сделать валидацию.
--СА

Рейтинг:
0

Dave Kreskowiak

Я бы не стал делать это с помощью нажатий клавиш в текстовом поле. То, как я делаю свои проверки, заключается в том, чтобы принять свободно набранный номер телефона, затем очистить все нечисловые символы от входных данных, проверить номер для рассматриваемой страны, переформатировать номер в строку в соответствии с правилами для этой страны.

Это позволяет мне вводить числа в любом выбранном ими формате, и я все равно получаю нужные мне данные, не расстраивая клиента.

Кстати, ваш шаблон регулярных выражений требует, чтобы каждое введенное число было длиной в 10 цифр и всегда начиналось с 9.


Sergey Alexandrovich Kryukov

Я должен сказать, что не согласен, если вы проголосовали 1 за ответ Раджеша. Проверка может быть использована поверх фильтрации по нажатию клавиши. Если фильтрация проста, ее следует использовать всегда. Если он сложный (например, позиционно-зависимый, как некоторые пытаются проектировать), он может запутать используемые и никогда не должен использоваться.
--СА

Dave Kreskowiak

Фильтрация почти никогда не бывает простой. Всегда будет следующее "требование", которое испортит то, что вы уже сделали.

Sergey Alexandrovich Kryukov

Может быть, но я имею в виду этот конкретный случай и некоторые подобные ему: отфильтруйте все, кроме цифр и обратного пространства (может быть, еще один или два). Это используется все время и совсем не сбивает с толку.
--СА