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.
try: value = int(value) except ValueError: pass # it was a string, not an int. This is the Ask Forgiveness approach. str. isdigit() returns True only if all characters in the string are digits ( 0 - 9 ).
Using built-in method isdigit(), each character of string is checked. If the string character is a number, it will print that string contains int. If string contains character or alphabet, it will print that string does not contain int.
Use the RegExp. test() method to check if a string contains at least one number, e.g. /\d/. test(str) . The test method will return true if the string contains at least one number, otherwise false will be returned.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With