基本上,我想制作一个程序,如果您开始输入名称,应用程序将从数据库中识别它并为您填写名称。为此,如果一个人在完成一个名字后输入一个逗号,该应用程序将开始记录下一个名字是什么。如果它作为数据库中名称之一的子字符串匹配,它将为用户填充它。问题是,在 textField 字符串中最后一次出现逗号字符之后,我需要知道到目前为止已经填写了名称的哪一部分,但我不知道如何。例如: 用户输入:“Daniel, Joh” 然后应用程序会为您填写 John。谢谢。
如果您确实想要最后一个逗号后面的字符,可以使用正则表达式:
let string = "Hamilton, A"
let regex = try! NSRegularExpression(pattern: ",\\s*(\\S[^,]*)$")
if let match = regex.firstMatch(in: string, range: string.nsRange), let result = string[match.range(at: 1)] {
// use `result` here
}
Run Code Online (Sandbox Code Playgroud)
在 Swift 4 中:
extension String {
/// An `NSRange` that represents the full range of the string.
var nsRange: NSRange {
return NSRange(startIndex ..< endIndex, in: self)
}
/// Substring from `NSRange`
///
/// - Parameter nsRange: `NSRange` within the string.
/// - Returns: `Substring` with the given `NSRange`, or `nil` if the range can't be converted.
subscript(nsRange: NSRange) -> Substring? {
return Range(nsRange, in: self)
.flatMap { self[$0] }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3640 次 |
| 最近记录: |