Ваше значение lastIndex += findStr.length(); было вынесено за скобки, что привело к бесконечному циклу (когда вхождение не было найдено, lastIndex всегда был равен findStr.length()).
Последняя строка создавала проблему. lastIndex никогда не будет иметь значения -1, поэтому будет бесконечный цикл. Это можно исправить, переместив последнюю строку кода в блок if .