将每个捕获的char替换为*?

Kam*_*ski 3 javascript regex

我有电子邮件,想要在第一个字母和@到*之间替换每个字符.例:

john.smith@gmail.com   ->  j*********@gmail.com
Run Code Online (Sandbox Code Playgroud)

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

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

console.log(h);
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

tri*_*cot 5

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

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

console.log(h);
Run Code Online (Sandbox Code Playgroud)