Что такое правильное выражение 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 ответов


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

^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$
       ^          ^           ^  ^
       |          |           |  |
       6 letters  2 letters   3 letters or digits
                  or digits      |
                                 last three are optional

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


по данным http://en.wikipedia.org/wiki/ISO_9362 ...

/[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?/i

это должно сделать трюк

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