Регулярное выражение: выберите первые x и последние буквы x, чтобы заменить их - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь выбрать пять первых и пять последних символов, чтобы заменить их, скажем, как "abcdefgh@abcdefgh.com", чтобы стать "*****fgh@abcdefg*****" Регулярное выражение, которое я использую не работает должным образом, но я не могу понять причину. Большое спасибо!

const strRe = str => str.replace(/(^.{5})(.{5}$)/gi, '*****');

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Это должно быть регулярное выражение? Вы можете просто нарезать свою строку:

const strRe = str => `*****${str.slice(5, -5)}*****`
1 голос
/ 13 апреля 2020

Ваш шаблон (^.{5})(.{5}$) не соответствует, так как он должен точно соответствовать 10 символам.

Вместо этого вы можете использовать чередование |, чтобы сопоставить либо 5 символов в начале, либо 5 символов в конце строка. Обратите внимание, что для замены вам не нужны группы захвата.

str.replace(/^.{5}|.{5}$/

let s = "abcdefgh@abcdefgh.com";
const strRe = str => str.replace(/^.{5}|.{5}$/gi, '*****');
console.log(strRe(s));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...