Я новичок в JavaScript, я хочу замаскировать идентификатор электронной почты в JS

Как mynewemail@gmail.com должен маскироваться как m********l@gmail.com . Как мне достичь в JS. Мой код ниже не работает в браузере

var maskid = ""; var myemailId = "mynewemail@gmail.com"; var prefix= myemailId .substring(0, myemailId .lastIndexOf("@")); var postfix= myemailId .substring(myemailId .lastIndexOf("@")); for(var i=0; i{amp}lt;prefix.length; i  ){ if(i == 0 || i == prefix.length-1 ) { maskid = maskid   prefix[i].toString(); } else { maskid = maskid   "*"; } } maskid =maskid  postfix; 

Я хочу справиться в JS это требование.

Благодарность

Вы можете использовать замену на основе регулярных выражений:

 var maskid = myemailId.replace(/^(.)(.*)(.@.*)$/, (_, a, b, c) ={amp}gt; a   b.replace(/./g, '*')   c ); 

Быть осторожен:

  • сделать это на стороне сервера, так как любая замена на стороне клиента может быть отменена пользователем.
  • что не все адреса электронной почты соответствуют вашим требованиям
  • что, когда он совпадает, он также не может скрывать много

Попробуй это:

 var maskid = ""; var myemailId = "mynewemail@gmail.com"; var prefix= myemailId.substring(0, myemailId .lastIndexOf("@")); var postfix= myemailId.substring(myemailId .lastIndexOf("@")); for(var i=0; i{amp}lt;prefix.length; i  ){ if(i == 0 || i == prefix.length - 1) { //////// maskid = maskid   prefix[i].toString(); } else { maskid = maskid   "*"; } } maskid =maskid  postfix; console.log(maskid) 

Вот еще один способ сделать это.

 var maskedid = ""; var myemailId = "mynewemail@gmail.com"; var index = myemailId.lastIndexOf("@"); var prefix = myemailId.substring(0, index); var postfix = myemailId.substring(index); var mask = prefix.split('').map(function(o, i) { if (i == 0 || i == (index - 1)) { return o; } else { return '*'; } }).join(''); maskedid = mask   postfix; console.log(maskedid); 

 let str = "tonkjhuhuhuy@gmail.com" str = str.split(''); let finalArr=[]; let len = str.indexOf('@'); str.forEach((item,pos)={amp}gt;{ (pos{amp}gt;=1 {amp}amp;{amp}amp; pos{amp}lt;=len-2) ? finalArr.push('*') : finalArr.push(str[pos]); }) console.log(finalArr.join('')) 

Я проверил код в IE 8. Совместное использование кода работает, как и ожидалось. Пожалуйста, поделитесь версией, которую вы проверили. Также убедитесь, что установлен флажок «Разрешить запуск активного содержимого в файлах на моем компьютере».

Шаги: 1) В Internet Explorer выберите меню Сервис, затем Свойства обозревателя. 2) В диалоговом окне «Свойства обозревателя» выберите вкладку «Дополнительно». Прокрутите вниз до параметров безопасности. Установите флажок Разрешить запуск активного содержимого в файлах на моем компьютере.