首页 > 解决方案 > 将每个捕获的字符替换为 *?

问题描述

我有电子邮件,想将第一个字母和 @ 之间的每个字符替换为 *。例子:

john.smith@gmail.com   ->  j*********@gmail.com

这是我的代码,但它产生了一颗星而不是许多星 - 我坚持下去:

let h="john.smith@gmail.com".replace(/(.)(.*)@/,'$1*') 

console.log(h);

有什么解决办法吗?

标签: javascriptregex

解决方案


您可以使用以下回调参数replace

let h = "john.smith@gmail.com".replace(/(.)(.*)@/, (_, first, rest) =>
    first + "*".repeat(rest.length) + "@"
); 

console.log(h);


推荐阅读