MatchesMask проверка ввода чисел

Иногра требуется проверить ввеленные данные по маске (телефоны, адреса электронной почты). Функция MatchesMask позволяет сделать. Однако, обрабатываемые ею маски не совпадют с теми, которые настраиваются для TMaskEdit и его потомков. Убедился на собственном опыте, когда необходимо было проверить ввод по маске  1203ЦифраЦифра выражение 1203\0\0 не отработало. при более детальнои изучении вопроса оказалось, что необходимое выражение 1203[0-9][0-9].  Если требуется обработать буквы, то их можно также употреблять в выражении либо явно прписывая, либо указывая множества, как это было сделано для цифр , указанием нжества [0-9].

Так же полезными будут символы “#”, “*” и “?” первый означает что символ любой, второй означает последовательность любых символов любой длины, третий означает , один символ, будква или цифра.

Не большой просто пример, формы на которой расположен TEdit и TButton поможет подобрать нужное вам выражение на обработчик кнопки следует повесить следующий код.


begin
  if MatchesMask(Edit1.Text, '123ы4[2-4]') then
    ShowMessage('OK.')
  else
    ShowMessage('Invalid.');
end;

Share

Tags: , ,

2 Responses to “MatchesMask проверка ввода чисел”

  1. Дмитрий пишет:

    То есть
    Если мы хотим, что бы в маске присутствовал некоторый символ явно, то мы его в нужном месте маски пишем.
    Если мы хотим, что бы присутствовал просто какой – то символ, то пишем “#”.
    Если мы хотим, что бы присутствовала, буква или цифра просто какой – то символ, то пишем “?”.
    Если мы хотим, что бы присутствовала, какая – то конкретная буква, то пишем ее или диапазон в скобках “a”, “[a-f]”.
    Если мы хотим, что бы присутствовала, какая – то конкретная цифра, то пишем ее или диапазон в скобках “2”, “[6-7]”

  2. Совершенно верно

Leave a Reply