我是django
的新朋友。我在替换字符串的某些字符时遇到问题。我想在电子邮件地址中隐藏一些字符。所以我想用*替换电子邮件的某些字符。
电子邮件地址: demo.cipher@gmail.com
我想要类似 demo ******* @ gmail.com
的电子邮件地址我使用replace
函数来替换电子邮件地址字符,但是不起作用。
x = demo.cipher@gmail.com
e = x.replace(x[5], '*')
答案 0 :(得分:0)
使用正则表达式。
},
DzSpanclick(){
$("#filedrag").click();
},
DZint() {
let dz = document.querySelector("#filedrag");
var previewNode = document.querySelector("#dz-template");
previewNode.id = "";
var previewTemplate = previewNode.parentNode.innerHTML;previewNode.parentNode.removeChild(previewNode);
Dropzone.autoDiscover = false;
this.uploadImageGalleryVar = new Dropzone(dz, {
url:"{$base_dir}post",
parallelUploads: 100,
paramName: "file",
params: { do: "imageupload" },
thumbnailWidth: 600,
thumbnailHeight: 600,
autoProcessQueue: false,
acceptedFiles:"image/*",
previewTemplate: previewTemplate,
uploadMultiple: false,
maxFiles: 8,
maxFilesize: 5,
autoDiscover : false,
previewsContainer: "#previews",
headers: { "Accept": "application/javascript" }
});
},
},
mounted: function() {
this.DZint();
}
});
输出:
注意:在上面的示例中,如果使用正则表达式Lookbehind和Lookahead替换了import re
x = "demo.cipher@gmail.com"
print(re.sub(r"(?<=\.)(.*?)(?=@)", lambda x: "*"*len(x.group()), x))
和demo.******@gmail.com
符号之间的字符
答案 1 :(得分:0)
我认为最容易理解的方式就是遵循这些原则。
x = demo.cipher@gmail.com
e = x[:4] + "***@" + x.split("@")[-1]
当然,此解决方案使用了一些假设,这些假设在问题中尚不清楚。
@
之前的电子邮件地址始终超过4个字符如果您的操作对时间很紧迫,那么一定要对这些不同的方式进行计时。
答案 2 :(得分:0)
import math
user_email = 'demo.cipher@gmail.com'
email_split = user_email.split("@")
email_title = email_split[0]
email_domain = email_split[1]
line_count = max(math.ceil(len(email_title)/2), 1)
replaced_title = email_title.replace(email_title[line_count * -1:],'*' * line_count)
hidden_email = f'{replaced_title}@{email_domain}'
demo.cipher@gmail.com -> demo.******@gmail.com
demo@gmail.com -> de**@gmail.com
dr@gmail.com -> d*@gmail.com
user_email = 'demo.cipher@gmail.com'
hidden_email = ''.join([i if user_email.index(i)%3!=1 or i == '@' else '*' for i in user_email ])
demo.cipher@gmail.com -> d*mo*ci*h**@gmai**com