Javascript 捕获不相邻的重复字母
如何捕捉单词中的重复字母,如abababa=2匹配a和b重复 我知道当字母像这样相邻时怎么做/\w\1+/ 谢谢尝试使用此字符串扩展:Javascript 捕获不相邻的重复字母,javascript,regex,Javascript,Regex,如何捕捉单词中的重复字母,如abababa=2匹配a和b重复 我知道当字母像这样相邻时怎么做/\w\1+/ 谢谢尝试使用此字符串扩展: String.prototype.getRepeating = function() { var length = this.length; var found = ''; var repeating = ''; var index; var letter; for (index = 0; index < length; index
String.prototype.getRepeating = function() {
var length = this.length;
var found = '';
var repeating = '';
var index;
var letter;
for (index = 0; index < length; index++) {
letter = this.charAt(index);
if (-1 == found.indexOf(letter)) {
found = found.concat(letter);
} else {
if (-1 == repeating.indexOf(letter)) {
repeating = repeating.concat(letter);
}
}
}
return repeating;
}
ab=>一个空字符串
aa=>a
bb=>b
abab=>ab
abb=>b
aab=>a
bab=>b
如果我理解正确,您希望提取在给定单词中出现多次的字母。如果是这样,您只需迭代单词的字母,累积它们的出现次数,然后过滤掉只出现一次的字母 var testString=ababababa; var字母=countGroupByLettertestString; var结果=过滤器过滤器,功能V{ 返回v>1; }; console.logresult; 函数countGroupByLettertestString{ var result={}; 对于var ii=0;ii
var tests = ['ab', 'aa', 'bb', 'abab', 'abb', 'aab', 'bab'];
for (var index in tests) {
console.log(tests[index], '=>', tests[index].getRepeating());
}