Замена слова без replace

141
16 марта 2022, 14:10

Как можно при помощи javascript заменить слово в тексте, не используя replace?

var text = "Этот трактат по теории этики был очень популярен в эпоху Возрождения"; 

Здесь нужно заменить слово "теории" на "практика".

Answer 1

В качестве простой замены метода replace можно использовать пару методов split и join

В таком виде:

str.split('подстрока которую заменить').join('строка на которую заменить');

Пример:

var text = "test 1, test 2, test 3, test 4, test 5, test 6"; 
 
document.body.innerHTML = text + '<br/>'+ 
  
  text.split('test').join('newTest');

Answer 2

Для разнообразия также можно произвести замену с помощью indexOf() и substring(). Точнее, это уже больше не "замена" а "копировать/вырезать/вставить", но тоже работает.

function replace(str, find, word) { 
  var result = str, i = 0, len = find.length; 
  while (len) { 
    i = result.indexOf(find, i); 
    if (i == -1) { 
      break; 
    } 
    result = result.substring(0, i) + word + result.substring(i + len); 
    i += len; 
  } 
  return result; 
} 
 
var newStr = replace("Этот трактат по теории этики", "по теории", "на практике"); 
console.log(newStr); // Этот трактат на практике этики

READ ALSO
Диаграмма Ганта на web

Диаграмма Ганта на web

Подскажите, каким способом лучше сделать (скриншот) подобную диаграмму? Данные должны браться из базы данных и выводитьсяВидел примеры с использованием...

89
Получение ответа от обработчика формы, посланной AJAX, в виде переменных или массива

Получение ответа от обработчика формы, посланной AJAX, в виде переменных или массива

Как получить обработанные данные в виде структурированных данных (например массива)Дело в том, что эти данные необходимо обновлять в таблице,...

153
Не работает клик по кнопке JS

Не работает клик по кнопке JS

На HTML странице есть две кнопки с одним и тем же классом "BACK"И есть JS код который должен выполняться при нажатии на эти кнопки в зависимости...

71