在網上看到了這樣一道題目:
判斷一個字符串中出現次數最多的字符,並統計次數
var s = 'aaaaacccccbbbbb';
var a = s.split('');
a.sort();
s = a.join('');
var pattern = /(\w)\1*/g; ==> 這里\1是什么意思?如果不寫這個會怎樣?
var ans = s.match(pattern);
ans.sort(function(a, b) {
return a.length < b.length;
});;
console.log(ans[0][0] + ': ' + ans[0].length);
有\1的情況下ans的值為:
["aaaaa","bbbbb","ccccc"]
沒有\1的情況下ans的值為:
["aaaaabbbbbccccc"]
如果是\2或者\3呢?
ans值為:["a","a","a","a","a","b","b","b","b","b","c","c","c","c","c"]
正則表達式中的小括號"()"。是代表分組的意思。 如果再其后面出現\1則是代表與第一個小括號中要匹配的內容相同。
注意:\1必須與小括號配合使用