Заменить все экземпляры символа в строке в typescript?

Я пытаюсь заменить все полные остановки в письме символом x - например "my.email@email.com" станет "myxemail@emailxcom". Email имеет значение string.
Моя проблема в том, что он не заменяет только полные остановки, он заменяет каждый символ, поэтому я просто получаю строку X.
Я могу заставить его работать только с одной полной остановкой, поэтому я предполагаю, что я ошибаюсь в части глобального экземпляра. Вот мой код:

let re = ".";
let new = email.replace(/re/gi, "x");

Я также пробовал

re = /./gi;
new = email.replace(re, "x");

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

** Edit: Упс, моя новая переменная на самом деле называлась newemail, ключевое слово new не вызывало проблемы!

1 ответов


ваш второй пример ближе. Единственная проблема-ваше имя переменной,new, который является одним из JavaScript зарезервированные слова (и вместо этого используется для создания объектов, таких как new RegExp или new Set). Это означает, что ваша программа выдаст синтаксическую ошибку.

кроме того, так как точка (.) является специальным символом внутри грамматики регулярных выражений, вы должны избежать его как \.. В противном случае вы закончите с result == "xxxxxxxxxxxxxxxxxx", который нежелательный.

let email = "my.email@email.com"

let re = /\./gi;
let result = email.replace(re, "x");

console.log(result)