Что такое правильное выражение RegEx для SWIFT-кодов?

Я должен отфильтровать пользовательский ввод на моей веб-странице ASP.NET:

<asp:TextBox runat="server" ID="recipientBankIDTextBox" MaxLength="11" />
<asp:RegularExpressionValidator runat="server" ValidationExpression="?" ControlToValidate="recipientBankIDTextBox" ErrorMessage="*" />

Насколько я знаю, SWIFT-код должен содержать 5 или 6 букв, а остальные символы длиной до 11 буквенно-цифровые.

Как правильно реализовать такое правило?

3 ответа

Решение

Свифт-код должен состоять из 8 или 11 букв или цифр, где первые шесть должны быть буквами. Но в любом случае не имеет значения, что это такое, важно то, что вы понимаете, как создать такое выражение. Вот регулярное выражение с аннотациями, чтобы показать вам, что означают эти части.

^ [AZ]{6}[А-Z0-9]{2}([А-Z0-9]{3})?$
       ^          ^           ^  ^
       |          |           |  |
       6 букв 2 буквы 3 буквы или цифры
                  или цифры |
                                 последние три необязательны

Все примеры в Википедии показывают только заглавные буквы AZ. Если вы также хотите разрешить строчные буквы, измените A-Z в A-Za-z, Я бы проверил стандарт ISO, чтобы увидеть, что это говорит, но, к сожалению, получить его копию не бесплатно.

Это должно сделать свое дело

^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$

Согласно http://en.wikipedia.org/wiki/ISO_9362...

/[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?/i
Другие вопросы по тегам