您好我正在开发需要手机号码作为唯一键的应用程序,我想出了4个差异条件如下:
例如编号为:8888822222,可以保存在任何用户联系簿中:
虽然4以上是相同的数字,但在字符串的情况下可能会有所不同。
那么如何检查并将此4视为相同的数字。任何人都可以帮助我吗?
修改
我的问题是,对于带有差异国家/地区代码和不同联系号码长度的号码,我应该考虑什么。
答案 0 :(得分:1)
您的所有电话号码的长度至少为10位,因此您可以从您的联系号码字符串中获取最后10位数,并检查任何唯一键字段是否包含该字符串。
例如
let contactNumStr = "+18888822222"
let onlyNum = contactNumStr.substring(from:contactNumStr.index(contactNumStr.endIndex, offsetBy: -10))
//8888822222 will be store in onlyNum
现在,您可以在数据库中检查此contains
的唯一号码onlyNum
。
请注意,您需要检查contains
不是完全匹配。
答案 1 :(得分:0)
也许这会帮助你
if(String(phone.characters.prefix(4)) == ("0888")){
phone = String(phone.characters.dropFirst())
}else if(String(phone.characters.prefix(3)) == ("+18")){
phone = phone.textureName.replacingOccurrences(of: "+1", with: "", options: NSString.CompareOptions.literal, range:nil)
}else if(String(phone.characters.prefix(3)) == ("+10")){
phone = phone.textureName.replacingOccurrences(of: "+10", with: "", options: NSString.CompareOptions.literal, range:nil)
}else {
//
}