check iban in swift

One way to validate an IBAN in Swift is to use regular expressions. Regular expressions offer a concise and powerful way to match patterns in strings.

Here is an example of an IBAN validation with regular expressions that can be added as an extension to the String class:

main.swift
extension String {
    func isValidIBAN() -> Bool {
        let ibanRegex = "^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$"
        let ibanTest = NSPredicate(format:"SELF MATCHES %@", ibanRegex)
        return ibanTest.evaluate(with: self)
    }
}
236 chars
8 lines

This extension function uses the regular expression ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$ to match an IBAN. This regular expression breaks down as follows:

  • ^ matches the start of the string.
  • [A-Z]{2} matches any two letter characters from A to Z.
  • [0-9]{2} matches any two digits.
  • [A-Z0-9]{1,30} matches between 1 and 30 alphanumeric characters.
  • $ matches end of the string.

We then use the NSPredicate class to test if our IBAN matches our regular expression. If it does, we return true, otherwise, we return false.

Here's an example using the extension function:

main.swift
let iban = "GB82WEST12345698765432"

if iban.isValidIBAN() {
    print("Valid IBAN")
} else {
    print("Invalid IBAN")
}
122 chars
8 lines

This will print "Valid IBAN" since the iban string matches our regular expression.

gistlibby LogSnag