Вам на самом деле не нужно регулярное выражение, чтобы сделать это.Хотя это немного не элегантно, следующее должно работать нормально (очевидно, что функцию можно вызывать как угодно в контексте вашего приложения):
function manipulate(string) {
if (string.slice(0, 3) == "..." && string.slice(-4) == ".bye") {
return string.slice(4, -4) + "!";
}
return string;
}
(Извините, если я сделал какие-то глупые ошибки с индексацией там,но основная идея должна быть очевидна.)
Это, по крайней мере для меня, имеет то преимущество, что его легче рассуждать, чем регулярное выражение.Конечно, если вам нужно иметь дело с более сложными случаями, вы можете достичь точки, в которой регулярное выражение является лучшим - но я лично не стал бы беспокоиться о простом сценарии использования, подобном тому, который упоминается в ОП.