Маскировка мобильного номера с помощью регулярных выражений в Javacript / Groovy - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь замаскировать номер мобильного телефона, используя replaceAll маскировка должна быть такой:

+1(123)456-7890 ----> +1(2**)4**-**78

+11234567890 -----> +12**4****78

+1-123-456-7890 --->+1-2**-4**-**78

Я пытался использовать код

test.replaceAll("\\d(?!\\d{0,3}\$)", "*")

, но он маскирует все цифры, кроме последних 4

Любая помощь будет оценена


1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете использовать регулярное выражение

(\+1[(-]?)\d(\d)\d([)-]?\d)\d{2}([)-]?)(\d{2})\d{2}

, чтобы сопоставить всю строку и заменить строку на

$1$2**$3**$4**$5

Демо

Механизм регулярных выражений Javascript выполняет следующие операции.

(\+1[(-]?) # match '+1' opt. followed by '(' or '-' in cap grp 1
\d         # match a digit (discard)
(\d)       # match a digit in cap grp 2
\d         # match a digit (discard)
([)-]?\d)  # match a digit opt. preceded by ')' or '-' in cap grp 3
\d{2}      # match 2 digits (discard)
([)-]?)    # optionally match ')' or '-' in cap grp 4
(\d{2})    # match 2 digits in cap grp 5
\d{2}      # match 2 digits (discard)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...