const regex = /(?=(?:\d|(?<=\d)[_\W]\d){4,5})\d|(?<=(?<!^)\G)\d|(?<=\d)[_\W]\d/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?=(?:\\d|(?<=\\d)[_\\W]\\d){4,5})\\d|(?<=(?<!^)\\G)\\d|(?<=\\d)[_\\W]\\d', 'gm')
const str = `any text 000 00 more texts" will become "any text ***** more texts"..notice that the space is removed
"any text 000 00 more texts 00" will become "any text ***** more texts 00"
"any text 000 00 more texts 00 00" will become "any text ***** more texts ****"
"any text 00-00 more texts 00_00" will become "any text **** more texts ****"`;
const subst = `*`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions