const SUBSTITUTE_REG = /\\?\{([^{}]+)\}/g,
EMPTY = '';
export function substitute(str, o, del) {
if (typeof str !== 'string' || !o) {
return str;
}
const arr = [];
const newStr = str.replace(SUBSTITUTE_REG, function (match, name) {
if (match.charAt(0) === '\\') {
return match.slice(1);
}
if( (o[name] === undefined)){
return EMPTY;
}else{
arr.push(name);
return o[name];
}
});
if(del){
arr.forEach(a => delete o[a]);
}
return newStr;
}