2014-02-06 2 views
2

Скажем, у меня есть эта строка:Javascript заменить строку, которая не соответствует?

cat hates dog 

Когда я сделать Replace:

str = str.replace('cat', 'fish'); 

Я только получить «кота» заменить на «рыба», как получить это работает так:

  1. "кошки" заменить словом "рыба"
  2. "другая строка" (еще) заменено на "козла"

поэтому я получить новую строку:

fish goat goat 

ответ

4

Вы можете использовать регулярное выражение \b\w+?\b:

"cat hates dog".replace(/\b\w+?\b/g, function(a) { 
    return a === 'cat' ? 'fish' : 'goat'; 
}); 

Это будет соответствовать каждое слово (последовательность символов слова \w окруженных словораздела \b) и результаты сопоставления результатов взамен обратного вызова;

Выход:

fish goat goat 
Смежные вопросы