繁体   English   中英

Javascript 替换字符串的某些部分

[英]Javascript replace some parts of string

我需要使用 javascript 隐藏部分字符串,我有电子邮件:

hideparts@email.com

我需要转变为:

hi****@email.com

我需要在@ 之后显示电子邮件,但我不知道如何执行此操作。

RegExp 可能很好。 Regex Editor

保留前两个字母并替换@之前的其余字母被替换

 let str = 'hideparts@email.com'; console.log(str.replace(/(\\w{2}).*?@/, '$1****@'));

这是使用 map() 和 repeat() 的快速方法

 let email = "hideparts@email.com"; const obfuscate = str => str.split('@').map((e, i) => i === 0 ? e.slice(0, 2) + '*'.repeat(e.length - 2) : e).join('@'); console.log(obfuscate(email))

首先获取 @With 的索引

Var ind =str.indexof("@")

然后从索引 2 循环到 ind,每个循环用 * 替换这个字符

我觉得这可以使用indexOf()和 for 循环来实现。

 let email = 'hideparts@email.com'; let atPosition = email.indexOf('@'); //get @ position let startIndex = atPosition > 2 ? 2: 0; //handle case for really small email names if(atPosition > -1){ for(let i = startIndex ; i < atPosition;i++){ email = email.substring(0, i) + '*' + email.substring(i + 1); } } console.log(email);

使用.subtstring()方法替换字符串中的字符。 email[i] = '*'不起作用,字符串是不可变的。

您可以使用以下代码来实现您的需求。

 const str = 'abcdefgh@email.com'; const [contact, domain] = str.split('@'); const maskedMailId = contact.slice(0, 2) + '*'.repeat(contact.length - 2) + '@' + domain; console.log(maskedMailId);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM