Задать вопрос

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

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

То же самое с выражением /.*/g. Почему ошибка? Это проблемы сервиса (regexr), или особенность алгоритма работы самого метасимвола?
  • Вопрос задан
  • 211 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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" - неожиданно
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы