У меня есть строка caaab
. Я хочу подсчитать общее количество появления шаблона aa
в этой строке. Это должно быть два.
[c**aa**ab]
[ca**aa**b]
Я использую (caaab'.match(/aa/g)||[]).length
но возвращается только 1
не 2
.
Как это сделать в javascript. Любое решение.
Вы можете положительно взглянуть на будущее, потому что он не использует недостающий шаг.
console.log(('caaab'.match(/a(?=a)/g) || []).length);
(?<=aa)
Трудная часть - это совпадение в шаблонах.
Если шаблон для поиска является фиксированной строкой, а не регулярным выражением, вы можете повторно вызвать indexOf
, обновив индекс начала после каждого совпадения.
var count = function (s, t) {
var count = 0, index = 0;
while (true) {
index = s.indexOf(t, index);
if (index === -1) break;
count++;
index++;
}
return count;
}
При этой реализации count('caaab', 'aa')
вернет 2.