在TypeScript中部分隐藏电子邮件地址(Javascript)

时间:2016-02-21 02:46:38

标签: javascript typescript

我正在使用 TypeScript(Javascript)

如何隐藏这样的电子邮件地址?

  • jack.dawson@gmail.comj*********n@g****.com

  • rose.bukater@outlook.comr**********r@o******.com

我只使用PHP找到answer

由于

3 个答案:

答案 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;
}