NSDataDetector
提供了一个方便的方式来做到这一点:
let string = "Good morning, 627137152 \n Good morning, +34627217154 \n Good morning, 627 11 71 54"
do {
let detector = try NSDataDetector(types: NSTextCheckingResult.CheckingType.phoneNumber.rawValue)
let numberOfMatches = detector.numberOfMatches(in: string, range: NSMakeRange(0, string.characters.count))
print(numberOfMatches) // 3
} catch {
print(error)
}
,或者如果你想提取数字
let matches = detector.matches(in: string, range: NSMakeRange(0, string.characters.count))
for match in matches{
if match.resultType == .phoneNumber, let number = match.phoneNumber {
print(number)
}
}
NSD ataDetector可能对电话号码有帮助:http://stackoverflow.com/a/36561378/1801544 – Larme
如果您使用的是UITextView,它具有属性dataDetectorTypes,因此只需将此属性设置为[.phoneNumber]即可。 – Raymond