Если ваш скрипт изменен, как насчет этой модификации?
В вашем скрипте match
в функции replacer()
- это разделенная строка. Когда вводится "ageoageag ageagoie ag77eage"
, каждое значение ageoageag
, ageagoie
и ag77eage
задается как match
. replacer()
возвращает все случаи с match
как match.slice(0,2) + 'xxxxx' + match.slice(6)
. При этом agxxxxxeag agxxxxxie agxxxxxge
возвращается.
Чтобы обработать только match
, включая число, как насчет этой модификации? Пожалуйста, измените функцию replacer()
следующим образом.
Из:
return match.slice(0,2) + 'xxxxx' + match.slice(6);
Кому:
return /[0-9]/.test(match) ? match.slice(0,2) + 'xxxxx' + match.slice(6) : match;
Результат:
ageoageag ageagoie agxxxxxge
Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.
Edit:
Если введенные значения разделены пробелом, например ageoageag ageagoie ag77eage
, как насчет этой модификации? В этой модификации const regexs
не используется.
От:
for(let r of regexs){
stdin = stdin.replace(r[0], r[1]);
}
Кому:
stdin = stdin.split(" ").map(function(e) {
return e.length > 6 && e.length <= 300 && /[0-9]/.test(e) ? e.slice(0,2) + 'xxxxx' + e.slice(6) : e;
}).join(" ");