How to check if a string contains an int? -Swift

arbel03 picture arbel03 · Aug 3, 2015 · Viewed 26.1k times · Source

I need to know if a string contains an Int to be sure that a name the user entered is a valid full name, for that I need to either make the user type only chars, or valid that there are no ints in the string the user entered. Thanks for all the help.

Answer

Tom Harrington picture Tom Harrington · Aug 3, 2015

You can use Foundation methods with Swift strings, and that's what you should do here. NSString has built in methods that use NSCharacterSet to check if certain types of characters are present. This translates nicely to Swift:

var str = "Hello, playground1"

let decimalCharacters = CharacterSet.decimalDigits

let decimalRange = str.rangeOfCharacter(from: decimalCharacters)

if decimalRange != nil {
    print("Numbers found")
}

If you're interested in restricting what can be typed, you should implement UITextFieldDelegate and the method textField(_:shouldChangeCharactersIn:replacementString:) to prevent people from typing those characters in the first place.