@spirit_2

Как произвести замену в строке где массив в качестве аргумента JavaScript?

Ребята, помогите одним махом (без циклов) заменить в строке все значения из массива. Вот подобный пример на php:

<?php
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

echo preg_replace($patterns, $replacements, $string);
// The bear black slow jumped over the lazy dog.
?>


Мои попытки:
var patterns = new Array();
var replacements = new Array();
var string = 'The quick brown fox jumped over the lazy dog.';

patterns[0] = "quick";
patterns[1] = "brown";
patterns[2] = "fox";

replacements[2] = "bear";
replacements[1] = "black";
replacements[0] = "slow";

document.write(string.replace(new RegExp(patterns), replacements));
  • Вопрос задан
  • 2959 просмотров
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
DEMO

'use strict';

// Plunker may spam in console
console.clear();

// Input string
var string = 'The quick brown fox jumped over the lazy dog.';

// Replacements
var matches = {
  'quick': 'slow',
  'brown': 'black',
  'fox': 'bear'
};

// Gogo
var result = string.replace(
  // Match all keys
  new RegExp(Object.keys(matches).join('|'), 'g'),
  // Just get value  from replacements 
  function(match) {
    return matches[match];
  }
);

// Bingo
console.log(result);
Ответ написан
Symphony
@Symphony Куратор тега JavaScript
Циклы чем Вам не угодили, у вас текста на 2 терабайт?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы