iosstringswiftnsformatter

Check if string is 3 chars and 3 number in Swift


I'm trying to create a function that validate my string if it is using this format

ABC123
First three characters should be letters and the other 3 should be numbers

I have no idea on how to start

Thanks


Solution

  • You can do it with a regular expression match on strings, like this:

        let str = "ABC123"
        let optRange = str.rangeOfString("^[A-Za-z]{3}\\d{3}$", options: .RegularExpressionSearch)
        if let range = optRange {   
            println("Matched")
        } else {
            println("Not matched")
        }
    

    Regex above requires that the match occupied the whole string (the ^ and $ anchors at both ends), has three letters [A-Za-z]{3} and three digits \\d{3}.

    You can also use it as an extension if you would like to:

        extension String {
            var match: Bool {
                return rangeOfString("^[A-Za-z]{3}\\d{3}$", options: .RegularExpressionSearch) != nil
            }
        }
    
    
        "ABC123".match // true