iFunction
@iFunction
PHP

Как игнорировать первые символы строки в RegExp?

Пытаюсь через регулярки скрыть середину слова.
Чтобы из "someword" получилось "so****rd" (кол-во * равно кол-ву скрытых символов)

Но пока получается только так:
const regex = /(?!^).(?!.{0,1}$)/gm;
const str = `someword`;
const subst = `*`;
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);


Substitution result: s*****rd

Как его заставить игнорировать несколько символов в начале строки, не понятно :(

Может у кого-то есть идеи?
  • Вопрос задан
  • 870 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
str.replace(/(?<=.{2}).(?=.{2})/g, '*')

// или

str.replace(/^(.{2})(.+)(.{2})$/, (m, g1, g2, g3) => g1 + '*'.repeat(g2.length) + g3)

// или

Array.from(str, (n, i) => (i < 2 || i > str.length - 3) ? n : '*').join('')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы