我尝试了很多案例,但没有人适合我.我试过了:
if resultTitles[indexPath.row].rangeOfCharacterFromSet(badCharacters) == nil { let badCharacters = NSCharacterSet.decimalDigitCharacterSet().invertedSet print("Index: \(indexPath.row)") }
也试过
if ((resultTitles[0].toInt()) != nil) { print("ERROR") }
那么,我该怎么检查,我的文字只包含数字?
我发现在Swift 3中这个解决方案更清洁
import Foundation CharacterSet.decimalDigits.isSuperset(of: CharacterSet(charactersIn: yourString))
你只需要检查是否Set
你的角色String
是子集的Set
包含字符从0到9.
extension String { var isNumeric: Bool { guard self.characters.count > 0 else { return false } let nums: Set= ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] return Set(self.characters).isSubset(of: nums) } } "".isNumeric // false "No numbers here".isNumeric // false "123".isNumeric // true "Hello world 123".isNumeric // false