@alicloud/console-base-intl-factory-basic
Version:
ConsoleBase Intl Factory Basic, Pure Text, No JSX
24 lines (23 loc) • 678 B
JavaScript
/**
* 获取替换插值后的原文案
*/
export default function formatMessage(messages, id, values, escapeValues) {
var text = messages[id] || id || '';
if (!values) {
return text;
}
// 如果文案当中有类似 `{xx}` 的地方需要将其用 `values.xx` 来替换
return text.replace(/\\?{([^}]+)}/g, function (match, k) {
if (match.charAt(0) === '\\') {
return match.slice(1);
}
var value = values[k];
if (value === undefined) {
return '';
}
if (typeof value === 'string' && escapeValues) {
return value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
}
return String(value);
});
}