Я заметил, что вы действительно можете передать свои именованные группы перехвата в обратном вызове замены:
'Yoda said "fear leads to anger."'.replace(
/(?<pre>\b\w+\b)(?<betwixt> leads to )(?<post>\b\w+\b)/,
(...args) => {
let [{pre, betwixt, post}] = args.slice(-1);
let ani = {fear:'anger',anger:'hate',hate:'suffering'};
return `${ani[pre]}${betwixt}${ani[post]}`;
}
)
Результат в Yoda said "anger leads to hate."
. По крайней мере, в chrome.
Мой вопрос: где это определено? Это определенно не кажется стандартизированным .
Это, кажется, всегда последний параметр после string
.
Я хотел бы знать, будет ли это новый стандарт, или что-то странное, что chrome разработчики временно обнаружили, что я случайно обнаружил, и оно исчезнет: (