假设我有以下字符串。
&eThe quick brown fox &djumps over the &dlazy &adog.
每组颜色代码&letter
,例如&e
将改变后面文本的颜色,直到出现另一个颜色代码。两个相同的代码紧随其后是多余的,因为它们的颜色相同。
&djumps over the &dlazy
我正在尝试合并与之前的颜色代码匹配的任何重复的颜色代码,因此上面的字符串将更改为以下内容:
&eThe quick brown fox &djumps over the lazy &adog.
但是我不确定这是如何完成的。有人可以帮忙吗?
最佳答案
将String.replace
与回调和存储先前颜色的外部变量结合使用:
let str = '&eThe quick brown fox &djumps over the &dlazy &adog.';
let last = '';
let result = str.replace(/&([a-z])/g, (match, color) =>
color !== last ? (last = color, match) : ''
);
console.log(result); // &eThe quick brown fox &djumps over the lazy &adog.
关于javascript - 如果下一行字符具有相同的字符集,则合并一组字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44374949/