#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