Files
console-dev/app/lib/product-name.js
T

20 lines
782 B
JavaScript

/** 商品展示名称去除内部 -L 后缀;此处不改商品 id,也不影响后端商品匹配。 */
function e(e) {
return typeof e == `string` && /-L\s*$/.test(e);
}
function t(e) {
return typeof e == `string` ? e.replace(/-L\s*$/, ``).trim() : ``;
}
// 在文本中仅替换已知商品全名,先按长度降序并转义正则,避免短名误伤长名或标识符。
function n(n, r) {
if (!n) return ``;
let i = [...new Set(r.filter((t) => e(t)).map((e) => e.trim()))].sort(
(e, t) => t.length - e.length,
);
if (!i.length) return n;
let a = i.map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, `\\$&`)).join(`|`),
o = RegExp(`(?<![A-Za-z0-9_-])(?:${a})(?![A-Za-z0-9_-])`, `g`);
return n.replace(o, (e) => t(e));
}
export { t as n, n as r, e as t };