我正在使用 TypeScript(Javascript)
如何隐藏这样的电子邮件地址?
jack.dawson@gmail.com
至j*********n@g****.com
rose.bukater@outlook.com
至r**********r@o******.com
我只使用PHP找到answer。
由于
答案 0 :(得分:7)
如上所述,这真的不是一个JavaScript工作,但这里有一些简短的开始:
var censorWord = function (str) {
return str[0] + "*".repeat(str.length - 2) + str.slice(-1);
}
var censorEmail = function (email){
var arr = email.split("@");
return censorWord(arr[0]) + "@" + censorWord(arr[1]);
}
console.log(censorEmail("jack.dawson@gmail.com"));
Ĵ*********Ñ@克*******米
答案 1 :(得分:1)
这是一个非常非常糟糕的例子。它起作用并且应该让你知道,但是男人是坏的......而且很长。你可以缩短它,但这只是为了让你知道如何完成它。
https://jsfiddle.net/anoffpt9/2/
function changeMail(str) {
var split = str.split("@");
var letter1 = split[0].substring(0, 1);
var letter2 = split[0].substring(split[0].length - 1, split[0].length);
var newFirst = letter1;
for(i = 0; i < split[0].length - 2; i++) {
newFirst += "*";
}
newFirst += letter2;
var letter3 = split[1].substring(0, 1);
var extension = letter3;
for(i = 0; i < split[1].split(".")[0].length - 1; i++) {
extension += "*";
}
extension += "." + split[1].split(".")[1];
var result = newFirst + "@" + extension;
return result;
}
非常非常糟糕,但你应该明白这一点。
编辑:完成它。它运作良好,但它太长了,可能会被修剪,但这里有很多因素(比如gmail.com - &gt; g ****。com)你需要一些不只是添加它们。
哦,这只涉及一个分机的邮件。 co.uk和子域名将无法正常工作..所以是的。很多因素都在发挥作用。这并不容易;)
答案 2 :(得分:0)
就像实验室技术人员在超人III中为Richard Prior制作氪石一样,我必须说&#34;我不确定你需要什么,但是你去......&# 34;
它有点长,但能更好地显示算法。
function obscure_email(email) {
var parts = email.split("@");
var name = parts[0];
var result = name.charAt(0);
for(var i=1; i<name.length; i++) {
result += "*";
}
result += name.charAt(name.length - 1);
result += "@";
var domain = parts[1];
result += domain.charAt(0);
var dot = domain.indexOf(".");
for(var i=1; i<dot; i++) {
result += "*";
}
result += domain.substring(dot);
return result;
}