Проблема сопоставления строк Javascript
Моя функция должна найти, сколько времени моя строка повторяется внутри строки. Он проходит все тестовые вызовы, кроме последнего. В строку “ааа” результат должен быть 2. Нашли струны должны быть “АА” и “АА”, но я только обнаруживать первый “АА”.
Что я уже пробовал:
Я думаю, что это что-то о позиции индекса, но я не могу понять этого.
Что я могу сделать, чтобы исправить это?
Мой код до сих пор:
function dscount(args){ var str = args[0]; var s ='' ; for(i=1; i<args.length; i++){ s+=args[i]; } var search = new RegExp(s, 'gi'); var count = (str.match(search) || []).length; console.log(count); return count; } try { test(dscount, ['ab___ab__', 'a', 'b'], 2); test(dscount, ['___cd____', 'c', 'd'], 1); test(dscount, ['de_______', 'd', 'e'], 1); test(dscount, ['12_12__12', '1', '2'], 3); test(dscount, ['_ba______', 'a', 'b'], 0); test(dscount, ['_a__b____', 'a', 'b'], 0); test(dscount, ['-ab-?b-ab', 'a', 'b'], 2); test(dscount, ['aAa', 'a', 'a'], 2); console.info("Congratulations! All tests success passed."); } catch(e) { console.error(e); } function test(call, args, count) { let r = (dscount(args) === count); console.assert(r, `Finded items count: ${count}`); if (!r) throw "Test failed!"; }