Скрыть текст звездочками

#javascript #css #angular #typescript

#javascript #css #угловой #typescript

Вопрос:

Я пытаюсь скрыть тип строковых данных, которые вводит пользователь, а затем с помощью bing данных в agular я показываю его в другом компоненте, и я хочу замаскировать / скрыть часть этих данных звездочками. Как я могу это сделать? Я не очень разбираюсь в js, можно ли это сделать с помощью css?

             <p class="subtitle">
                Hemos enviado un correo electrónico a<br />
                <b>{{ capturedEmail }}</b> con las instrucciones<br />
                para la recuperación de tu contraseña.<br />
                Una vez reestablezcas la contraseña, podrás<br />
                ingresar a la plataforma con tus datos.
            </p>

  

В приведенном выше фрагменте кода {{ capturedEmail }} — это тот, кому я хочу добавить это свойство

Пример:

correo@mail.com -> С***@mail.com

Ответ №1:

Для этого можно использовать угловой канал. Прилагается демонстрационная версия Stackblitz для вашей справки

 <h1>{{ capturedEmail | emailAsterisk }}</h1>
  
 @Pipe({ name: 'emailAsterisk' })
export class EmailAsteriskPipe implements PipeTransform {

  transform(value: string): string {
    return value 
      ? value.replace(/B. @/g, (c, ) => c.split('').slice(0, -1).map(v => '*').join('')   '@') 
      : value;
  }

}
  

Результат

 correo@mail.com         >    c*****@mail.com
john.wick22@gmail.com   >    j**********@gmail.com
  

Ответ №2:

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

Попробуйте это ниже кода javascript!

 const capturedEmail = function (emailAddress, callback) {
    function mask(str) {
        var strLen = str.length;
        if (strLen > 4) {
            return str.substr(0, 1)   str.substr(1, strLen - 1).replace(/w/g, '*')   str.substr(-1,1);
        } 
        return str.replace(/w/g, '*');
    }
    return emailAddress.replace(/([w.] )@([w.] )(.[w.] )/g, function (m, p1, p2, p3) {      
        return callback(null,mask(p1)   '@'   p2   p3);
    });
     
}
 
capturedEmail('random string username@example.com test', function(err,res){
console.log(res);
});  

 Result: u*******e@example.com