嘿我想检查一下是否UITextView
(也许这可能相关或不相关)在文本中包含电话号码。我在用Swift 2.3
,但如果你把它放进去Swift 3
我会尝试翻译它。
应该适用于这些输入,例如:
- “早上好,627137152”
- “早上好,+34627217154”
- “早上好,627 11 71 54”
最后一种情况很简单,如果其他情况有效,只需将出现的“”替换为“”并检查前面的函数是否包含电话。
我已经尝试过这个解决方案,但不适用于第一种情况:(查找字符串中的电话号码 - 常规 https://stackoverflow.com/questions/32232319/find-phone-number-in-string-regular)
谢谢。
NSDataDetector https://developer.apple.com/reference/foundation/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: NSRange(string.startIndex..., in: string))
print(numberOfMatches) // 3
} catch {
print(error)
}
或者如果你想提取数字
let matches = detector.matches(in: string, range: NSRange(string.startIndex..., in: string))
for match in matches{
if match.resultType == .phoneNumber, let number = match.phoneNumber {
print(number)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)