Что такое правильное выражение RegEx для SWIFT-кодов? - PullRequest
8 голосов
/ 12 июня 2010

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

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

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

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

Ответы [ 3 ]

25 голосов
/ 12 июня 2010

Свифт-код должен состоять из 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 на A-Za-z. Я бы проверил стандарт ISO , чтобы увидеть, что это говорит, но, к сожалению, получить его копию не бесплатно.

3 голосов
/ 12 июня 2010

Это должно сработать

^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$
3 голосов
/ 12 июня 2010

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

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