2016-02-21 97 views
2

我使用打字稿(JavaScript)的部分隱藏在打字稿(JavaScript)的電子郵件地址

這樣我怎麼能隱藏部分電子郵件地址?

我只找到一個answer使用PHP。

謝謝

+3

你不應該通過Javascript來做到這一點,因爲它是加載客戶端,這意味着用戶可以簡單地反轉它(或完全停止腳本),它會顯示郵件。 – MortenMoulder

+0

你想要解決什麼更高層次的目標或問題? – charlietfl

+0

電子郵件地址混淆應該在服務器端完成,而不是在JavaScript中完成。 – scunliffe

回答

6

如上所述,這真的不是一個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("[email protected]")); 

Ĵ ********* N - [摹*******米

+1

與他的結果不盡相同。 – MortenMoulder

+1

足以讓他開始。 –

+0

謝謝@crclayton!代碼有很多幫助,它非常簡潔! –

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 - > g ****。com),你需要的不僅僅是添加它們。

哦,這隻佔一個擴展的郵件。 co.uk和子域名將無法使用..所以是的。 ,很多在玩因素,這不是那麼容易;)

+0

這肯定會有幫助!事情是我不知道API分裂,但現在我可以做到。 –

+0

@洪波妙沒問題!我已經用完整的答案對它進行了更新,完全符合你的要求:) – MortenMoulder

0

就像當化驗員使氪石理查德此前超人III我不得不說「我不是確定你需要這個,但你在這裏......「

它有點長形但更好地顯示算法。

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; 
} 
+0

謝謝你的幫助,戈登! –

相關問題