您好我没有找到完美的解决方案,如何在@ with * like
之前替换电子邮件ID文本假设我的电子邮件ID为 XXXXXXX@gmail.com
,那么我想要的输出*******@gmail.com
我试试这个
let delimiter = "@"
let newstr = "Himmoradiya@gmail.com"
var token = newstr.components(separatedBy: delimiter)
let newQuery = (token[0] as NSString).replacingCharacters(
in: NSMakeRange(0,token[0].characters.count), with: "*")
任何建议都被接受。
谢谢。
答案 0 :(得分:6)
使用您可以实现的repeating
尝试
let newstr = "Himmoradiya@gmail.com"
var token = newstr.components(separatedBy: "@")
let newQuery = String(repeating: "*", count: token[0].characters.count) //check array length before using index
print(newQuery + "@" + token[1] ) // *******@gmail.com
答案 1 :(得分:2)
编写此代码:
appno.IsValid()
答案 2 :(得分:0)
你可以这样做,
let delimiter = "@"
let newstr = "Himmoradiya@gmail.com"
let arr = newstr.components(separatedBy: delimiter)
let resultStr = "xxxxxx" + "@" + arr[1]
print(resultStr)
答案 3 :(得分:0)
使用此功能。
func getStarred(_ email : String ) -> String
{
var didFoundATRO = false
var tempString = ""
for char in email.characters
{
if char == "@"
{
didFoundATRO = true
}
if !didFoundATRO
{
tempString += "*"
}
else
{
tempString.append(char)
}
}
return tempString
}
答案 4 :(得分:0)
let delimiter = "@"
var newstr = "Himmoradiya@gmail.com"
let arr = newstr.components(separatedBy: delimiter)
let strMail = arr.first!
let strReplaceStr = String(repeating: "*", count: strMail.characters.count)
newstr = newstr.replacingOccurrences(of: strMail, with: strReplaceStr)
和输出(newstr
)将是:*********** @ gmail.com
答案 5 :(得分:0)
我创建了一个字符串扩展名,例如...
extension String {
var hideEmailPrefix: String {
if self.contains("@") {
var part = self.components(separatedBy: "@")
let newText = String(repeating: "*", count: part[0].count)
return newText + "@" + part[1]
}
return self
}
}
然后在我的ViewController中:
override func viewDidLoad() {
super.viewDidLoad()
let email = "abc@gmail.com"
print(email.hideEmailPrefix) // ***@gmail.com
}
答案 6 :(得分:0)
var maskEmail: String {
let email = self
let components = email.components(separatedBy: "@")
var maskEmail = ""
if let first = components.first {
maskEmail = String(first.enumerated().map { index, char in
return [0, 1, first.count - 1, first.count - 2].contains(index) ?
char : "*"
})
}
if let last = components.last {
maskEmail = maskEmail + "@" + last
}
return maskEmail
}
var maskPhoneNumber: String {
return String(self.enumerated().map { index, char in
return [0, 3, self.count - 1, self.count - 2].contains(index) ?
char : "*"
})
}