Избавьтесь от модификатора g
в регулярном выражении.Это следует использовать только с .exec()
, когда вы используете регулярное выражение в цикле, чтобы найти все совпадения в одной строке.Это заставляет регулярное выражение запоминать позицию в строке, где закончилось совпадение, так что следующий вызов может искать совпадение после этого.
Но если вы используете регулярное выражение с другой строкой, он начнет искатьв той строке из индекса, где он нашел совпадение в предыдущей строке.Если это после совпадения в этой строке, он не найдет его.
Модификатор g
также полезен при использовании .match()
для возврата всех совпадений регулярного выражения в массиве (но тогда выне могу получить группы захвата, вот почему вы), и с .replace()
заменить все совпадения.