2014-10-12 2 views
0

https://en.wikipedia.org/wiki/International_Bank_Account_Number#PracticalitiesКак отредактировать номер IBAN в четырех группах символов?

IBAN не должен содержать пробелов при передаче в электронном виде: при печати она выражается в группах из четырех символов, разделенных единое пространство, последняя группа может быть переменной длины, как показано на примере ниже:

Типичный IBAN выглядит так: GR16 0110 1250 0000 0001 2300 695 (взято из приведенной выше ссылки).

Я хочу, чтобы пользователям было легче вводить номера IBAN. В настоящее время я использую TDBEdit для отображения номера IBAN и хранится в виде символов (без пробелов) в базе данных.

Я знаю, что можно форматировать номера с помощью TNumericField.DisplayFormat, также есть TMaskEdit, но оба они не очень полезны для этой цели, так как IBAN не является числом и имеет разные длины в разных странах.

Как отредактировать номер IBAN в четырех группах символов в элементе управления БД?

PS: Я не прошу о фактической проверке IBAN, поскольку у меня уже есть это.

+0

FWIW, в некоторых странах (например, в Испании), IBANs отформатированы несколько иначе. Один пример: [Código internacional IBAN] (http://www.bankimia.com/codigos-iban-bic-swift-de-caja-madrid-cobc26). –

+0

@RudyVelthuis Этот документ называет это форматирование «номера внутреннего банковского счета» для Испании: http://www.swift.com/dsp/resources/documents/IBAN_Registry.pdf –

+0

Почему голос? Что случилось с моим вопросом? –

ответ

7

Вы можете использовать свойство EditMask поля IBAN, так как это также будет работать для строковых полей. Подходящий EditMask для IBAN может выглядеть следующим образом:

">LL00 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aa;0; " 

Первый символ делает поле редактирования преобразовать все символы в верхний регистр. Следующие четыре записи требуют двух альфа-символов, за которыми следуют два числовых. Заготовки представляют запрошенные пробелы. Нижний «a» позволяет использовать буквенно-цифровой символ, но не требует его.

«0» во второй части маски будет лишать любые литералы (пробелы пробелов) из записи, хранящейся в поле.

Заготовка в третьей части маски делает заготовки зазора пустыми.

Смежные вопросы