Tom*_*ton 37
您可以将Foundation方法与Swift字符串一起使用,这就是您应该在此处执行的操作.NSString内置了一些方法,用于NSCharacterSet检查是否存在某些类型的字符.这很好地转换为Swift:
var str = "Hello, playground1"
let decimalCharacters = CharacterSet.decimalDigits
let decimalRange = str.rangeOfCharacter(from: decimalCharacters)
if decimalRange != nil {
print("Numbers found")
}
Run Code Online (Sandbox Code Playgroud)
如果您对限制可键入的内容感兴趣,则应该实现UITextFieldDelegate以及textField(_:shouldChangeCharactersIn:replacementString:)防止人们首先键入这些字符的方法.
小智 11
使用类中的方法的简单Swift 4版本:rangeOfCharacterString
let numbersRange = stringValue.rangeOfCharacter(from: .decimalDigits)
let hasNumbers = (numbersRange != nil)
Run Code Online (Sandbox Code Playgroud)
此方法是我现在用于检查字符串是否包含数字的方法
func doStringContainsNumber( _string : String) -> Bool{
let numberRegEx = ".*[0-9]+.*"
let testCase = NSPredicate(format:"SELF MATCHES %@", numberRegEx)
let containsNumber = testCase.evaluateWithObject(_string)
return containsNumber
}
Run Code Online (Sandbox Code Playgroud)
如果您的字符串包含数字,则将返回true,否则返回false。希望能帮助到你
//Swift 3.0 to check if String contains numbers (decimal digits):
let someString = "string 1"
let numberCharacters = NSCharacterSet.decimalDigits
if someString.rangeOfCharacter(from: numberCharacters) != nil
{ print("String contains numbers")}
else if someString.rangeOfCharacter(from: numberCharacters) == nil
{ print("String doesn't contains numbers")}
Run Code Online (Sandbox Code Playgroud)
//A function that checks if a string has any numbers
func stringHasNumber(_ string:String) -> Bool {
for character in string{
if character.isNumber{
return true
}
}
return false
}
/// Check stringHasNumber function
stringHasNumber("mhhhldiddld")
stringHasNumber("kjkdjd99900")
Run Code Online (Sandbox Code Playgroud)