我正在尝试编写一个像
一样的函数 "aaaabbccccdeeeaaaaa"
- > "abcdea"
但我无法弄清楚如何从字符串中删除字符。所以我在哪里
String.prototype.removeConsecutives = function()
{
let k = 0;
for(int i = 0; i < this.length; ++i)
if(this[i] !== this[i-1])
this[k++] = this[i];
// now I want to remove the characters in the range
// of indices [k, this.length)
}
答案 0 :(得分:2)
使用正则表达式替换很容易:
var result = "aaaabbccccdeeeaaaaa".replace(/(.)\1+/g,"$1");
console.log(result);
在我显示的正则表达式中,(.)
匹配任何字符,然后\1
是对括号中匹配的任何内容的反向引用,+
表示其中一个或多个。使用g
标志进行全局替换。替换字符串使用$1
来使用括号中的子匹配。