Я, кажется, получаю противоречивые советы в книгах, которые я прочитал об этой функции.Мне интересно, если кто-то может уточнить.Например, Николас Закас заявляет, что аргумент функции имеет сигнатуру функции форматирования (match, pos, originalText) (P139: Pro JavaScript для веб-разработчиков, 2-е издание: Wrox)
Он продолжает говорить, когда регулярное выражениеимеет одно совпадение, функция получает три аргумента (как указано выше).Когда имеется несколько групп захвата, каждая совпавшая строка передается в качестве аргумента, причем последние две позиции - это позиция и originalText ...
Затем мы переходим к Дагу Крокфордсу, JavaScript: Хорошие части.(P90): Он снова устанавливает синтаксис в виде строки (searcValue, replaceValue) searchValue может быть регулярным выражением - отличное совпадение. Если replaceValue - функция, первый параметр - сопоставленный текст, затем второй - группа захвата 1, третий -группа захвата 2 и т. д. Здесь есть заметная разница.(т.е. без аргумента позиции)
Я также рассматривал пример в шаблонах проектирования Pro JavaScript (APress P152), который запустил весь процесс перекрестных ссылок.Эти парни (Росс Хармс / Дастин Диаз) довольно бесполезно указывают функцию replaceValue с двумя аргументами, названными a & b.Но это усиливает идею, которую описывает Дуг Крокфорд.
Может ли кто-нибудь подтвердить, является ли описание Николаса Закаса действительно верным вариантом?