@amaui/utils
Version:
27 lines (24 loc) • 860 B
JavaScript
import is from './is';
const optionsDefault = {
variablesRegExp: /(\{.*?\}|\[.*?\])/g,
cleanVariables: true,
placeholderPrefix: '_'
};
const getStringVariables = function (value) {
let options_ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
const options = { ...optionsDefault,
...options_
};
let valueWithPlaceholders = value;
if (is('string', value)) {
let variables = value.match(options.variablesRegExp) || [];
variables.forEach((variable, index) => valueWithPlaceholders = valueWithPlaceholders.replace(variable, "".concat(options.placeholderPrefix).concat(index)));
if (options.cleanVariables) variables = variables.map(variable => variable.slice(1, variable.length - 1));
return {
value,
variables,
valueWithPlaceholders
};
}
};
export default getStringVariables;