Как понять логику поведения квантификатора-звездочки?

Здравствуйте!
Есть простецкое выражение /[0-9]*/g, а также строка abcde123abc. Почему regexr выдает ошибку infinite? Ведь по сути, выражение означает "совпадение, если литерал в интервале от 0 до 9 присутствует или отсутствует (пустая строка)". Поиск должен остановиться в конце строки, среагировав на все возможные элементы.

То же самое с выражением /.*/g. Почему ошибка? Это проблемы сервиса (regexr), или особенность алгоритма работы самого метасимвола?
  • Вопрос задан
  • 209 просмотров
Пригласить эксперта
Ответы на вопрос 1
alsopub
@alsopub
Вот смотрите что у меня получилось:
console.log("asd123fgh".replace(/\d*/, "z")); // "asdzfgh" - ожидаемо
console.log("asd123fgh".replace(/\d*/, "z")); // "zasd123fgh" - неожиданно
console.log("asd123fgh".replace(/\w+/g, "z")); // "z" - ожидаемо
console.log("asd123fgh".replace(/\w*/g, "z")); // "zz" - неожиданно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы