我想检查一个字符串是否只包含数字。我遇到了this用 Objective-C 编写的答案。
NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
if(range.location == NSNotFound) {
// then it is numeric only
}
我尝试将其转换为 Swift。
let range: NSRange = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
我遇到的第一个错误是在分配类型 NSRange
时。
无法转换表达式的类型“范围?”输入“NSRange”
所以我删除了 NSRange
并且错误消失了。然后在 if 语句中,
let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
if range.location == NSNotFound {
}
我遇到了另一个错误。
“范围?”没有名为“location”的成员
请注意,变量 username
的类型是 String
而不是 NSString
。所以我猜 Swift 使用它的新 Range
类型而不是 NSRange
。
问题我不知道如何使用这个新类型来完成这个。我也没有找到它的任何文档。
有人能帮我把这段代码转换成 Swift 吗?
谢谢。
最佳答案
这是一个如何使用它的例子:
if let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet()) {
println("start index: \(range.startIndex), end index: \(range.endIndex)")
}
else {
println("no data")
}
关于ios - 从字符串中获取范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25241188/