UNPKG

fast-iban

Version:

IBAN/BBAN validation and conversion following ISO 13616

120 lines (83 loc) 4 kB
[![npm version](https://badge.fury.io/js/fast-iban.svg)](https://badge.fury.io/js/fast-iban) [![Build Status](https://travis-ci.org/EDumdum/iban-js.svg?branch=master)](https://travis-ci.org/EDumdum/iban-js) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Edumdum/iban-js/master/LICENSE) # fast-iban [IBAN/BBAN](https://en.wikipedia.org/wiki/International_Bank_Account_Number) validation and conversion following [ISO 13616](https://www.swift.com/standards/data-standards/iban). Last update: 92 - May 2022 ## Installation Install using [npm](http://npmjs.org/): ```bash $ npm install fast-iban ``` ## Usage ### In node.js ```js var IBAN = require('fast-iban'); IBAN.formatBBAN('54320388899944', 'FO'); // 5432-038889994-4 IBAN.formatIBAN('BG80BNBG96611020345678'); // BG80 BNBG 9661 1020 3456 78 IBAN.generateIBAN('12345600000785', 'FI', true, true); // FI21 1234 5600 0007 85 IBAN.validateIBAN('AD12-0001-2030-2003-5910-0100'); // true IBAN.validateIBAN('AZ21NABZ00000000137010001944'); // true IBAN.validateIBAN('HR6510010051863000160'); // false IBAN.validateIBAN('AT611904300234573201', true); // true IBAN.validateIBAN('BG80BNBG96611020345678', false); // true IBAN.validateBBAN('370400440532013000', 'DE'); // true IBAN.validateBBAN('0WBK000000007099453', 'GI'); // false ``` ## API ### `formatBBAN(rawValue: String, rawCountryCode: String, separator?: String = '-')` -> `String` Check requirements. Returns rawValue formatted as BBAN for rawCountryCode Validate BBAN before formatting. See method `validateBBAN(rawValue, rawCountryCode)` for more informations. Separator can be customised. Default value is `-`. *Required* - rawValue must be not `Null` - rawValue must be of type `String` - rawCountryCode must be not `Null` - rawCountryCode must be of type `String` - rawCountryCode must respect format `^[A-Z]{2}$` ### `formatIBAN(rawValue: String)`-> `String` Check requirements. Returns rawValue formatted as an IBAN. *Required* - rawValue must be not `Null` - rawValue must be of type `String` ### `generateIBAN(rawValue: String, rawCountryCode: String, validateBBAN?: Boolean = false, formatIBAN?: Boolean = false)` -> `String` Check requirements. Returns value as a valid IBAN using rawValue and rawCountryCode. If `validateBBAN === true`, validate BBAN before the check digits. See method `validateBBAN(rawValue, rawCountryCode)` for more informations. Default value is `false`. If `formatIBAN === true`, format IBAN after generation of the check digits. See method `formatIBAN(rawValue)` for more informations. Default value is `false`. *Required* - rawValue must be not `Null` - rawValue must be of type `String` - rawCountryCode must be not `Null` - rawCountryCode must be of type `String` - rawCountryCode must respect format `^[A-Z]{2}$` ### `validateBBAN(rawValue: String, rawCountryCode: String)` -> `Boolean` Check requirements. Returns if the BBAN format against ISO 13616 specifications is valid. Last update: October 2019 Source: https://www.swift.com/standards/data-standards/iban If `rawCountryCode` is unknow, prints warning in console and always returns `true`. *Required* - rawValue must be not `Null` - rawValue must be of type `String` - rawCountryCode must be not `Null` - rawCountryCode must be of type `String` - rawCountryCode must respect format `^[A-Z]{2}$` ### `validateIBAN(rawValue: String, validateBBAN?: Boolean = false)` -> `String` Check requirements. Returns if the IBAN check digits are valid. If `validateBBAN === true`, validate BBAN before the check digits. See method `validateBBAN(rawValue, rawCountryCode)` for more informations. Default value is `false`. *Required* - rawValue must be not `Null` - rawValue must be of type `String` - rawValue must respect format `^[A-Z]{2}[0-9]{2}[0-9A-Z]{11,30}$`