javascript - 如果下一行字符具有相同的字符集,则合并一组字符?

标签 javascript jquery regex

假设我有以下字符串。

&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/

相关文章:

javascript - for循环内Jquery代码中的变量插值

javascript - 我怎样才能包装这个特定的函数?

php - 正则表达式 preg qoute 模仿正则表达式

c - 需要图路径抽象算法

javascript - AsyncStorage 返回意外错误

asp.net - Crystal 报表最佳实践问题

jquery - 不发送默认选择的选项值

javascript - jQuery/Javascript 拆分字符串计算

Jquery基于href添加类

c++ - 正则表达式奇怪的行为