Как сделать регулярное выражение найти и заменить в JavaScript, где оно чередуется «заменить» и «найти дальше» - PullRequest
0 голосов
/ 24 октября 2019

Я могу сделать это в Editpad, запустив макрос, чередуя «Найти далее» и «Заменить текущий и Найти следующий». Тем не менее, у меня есть много замен текстов регулярных выражений, поэтому делать это для каждого из них отнимает много времени. Делая это глобально в javascript, я могу это сделать, если я хочу сделать все сразу, но я хочу заменить один, пропустить следующий, заменить следующий и так далее до конца документа.

Я пытался найти ответ, но все результаты о поиске и замене каждого вхождения, что я уже знаю, как это сделать.

1 Ответ

0 голосов
/ 24 октября 2019

String.prototype.replace() - это то, что вы ищете, mdn .

let replaceEveryOther = (string, replaced, repalceWith) => {
  let alternate;
  return string.replace(replaced, a =>
    (alternate = !alternate) ? repalceWith : a);
};

let string = 'thee doublee ee\'s neeeed to be fixeed soon!';
let fixed = replaceEveryOther(string, /e/g, '');
console.log(fixed);

В качестве альтернативы, если вы хотите избежать использования вспомогательной функции:

let string = 'thee doublee ee\'s neeeed to be fixeed soon!';
let fixed = string.replace(/e/g, (function(a) {
  return (this.alternate = !this.alternate) ? '' : a;
}).bind({}));
console.log(fixed);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...