Использование методов расширения строк для проверки номеров социального обеспечения в C#

В этом примере определяются три метода расширения, возвращающих true, если строки содержат номера социального обеспечения.

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

Этот код просто вызывает статический метод IsMatch Regex класса, передающий ему строку и регулярное выражение. Этот метод возвращает true или false, чтобы указать, соответствует ли строка выражению. Метод расширения просто возвращает этот результат.

Как только вы определили метод Matches, легко сделать другие методы расширения, которые проверяют определенные форматы. Следующий код показывает, как этот пример проверяет номера социального обеспечения с тире или без тире или с любым форматом.

Эти методы отличаются только регулярными выражениями, которые они используют. Первый метод IsValidSsnWithDashes использует шаблон @ "^ \ d {3} - \ d {2} - \ d {4} $", чтобы сопоставить номера социального страхования формы ddd -dd-dddd, где d - любая цифра. Обратите внимание на то, как код использует символ @ для создания строкового литерала, поэтому обратные косые черты не обрабатываются как специальные символы в строке.

Начальный ^ соответствует началу строки. Ток \ d означает «любая цифра». {3} означает повторение предыдущего символа \ d 3 раза, поэтому первая часть выражение соответствует 3 цифрам в начале строки. Тире - рассматривается как буквальный символ, поэтому строка должна содержать тире. Затем выражение использует \ d и спецификаторы счетчика, чтобы соответствовать двум цифрам, тире и 4 цифрам. Окончательный $ соответствует концу строки.

Второй метод IsValidSsnWithoutDashes использует шаблон @ "^ \ d {9} $", чтобы сопоставить номера социального обеспечения формы ddddddddd. Это регулярное выражение просто соответствует 9 цифрам.

Третий метод IsValidSsn соответствует номерам социального обеспечения с тире или без них. Его регулярное выражение включает в себя два предыдущих регулярных выражения, разделенных вертикальной полосой |, которая указывает, что любой из шаблонов может составить совпадение.

С помощью этих методов расширения основная программа может легко проверить номера социального страхования. В основной форме используются обработчики событий TextChanged, чтобы дать каждому TextBox желтый фон, если он не содержит данных в соответствующем формате. Следующий код показывает, как TextBox позволяет использовать любой формат.

Источник: http://csharphelper.com/blog/2017/06/use-string-extension-methods-to-validate-social-security-numbers-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *