2016-06-29 2 views
-1

Я пытаюсь заменить слово hello в любом месте страницы словом hi с помощью Javascript. Я создал сценарий ниже, но он не работает, как ожидалось, есть ли что-то, что я могу сделать для достижения желаемого результата.Заменить конкретные слова среди содержимого страницы со значением javascript

function(data) { 
      var newdata = data.replace("hello", "hi"); 
} 

Jsfiddle

+0

data.replace (/ hello/g, "hi"); –

+0

Возможный дубликат [Замена всех вхождений строки в JavaScript] (http://stackoverflow.com/questions/1144783/replacing-all-occurrences-of-a-string-in-javascript) –

ответ

3

Это будет работать, хотя можно было бы излишним, используя регулярные выражения:

document.body.innerHTML = document.body.innerHTML.replace(/hello/g, "hi") 

Jsfiddle

+1

использовал бы document.body.innerHTml.replace лучший способ сделать это, если бы у меня было 200 из них один за другим, заменив много слов на странице? –

+0

Я не уверен, что это лучший способ. Я знаю, что есть много способов сделать это, чтобы усложниться. Но я протестировал его в jsfiddle с 200 экземплярами «привет», и он не изменил их всех на «привет» без проблем. Надеюсь это немного поможет. –

3

В вашем примере, вы только заменить первое вхождение.

Ниже документации JavaScript о замене:

Примечание: Если вы заменяете значение (а не регулярное выражение), будет заменен только первый экземпляр значения. Чтобы заменить все вхождения указанного значения, используйте глобальный (g) модификатор.

Вы должны использовать глобальный модификатор, как показано ниже

function(data) { 
      var newdata = data.replace(/hello/g,"hi"); 
} 
+1

Я обновил скрипку, используя код, однако ничего не изменил. https://jsfiddle.net/3ncveq90/3/ ссылка на скрипт –

+0

Замененное содержимое теперь находится в переменной _newdata_, вы должны использовать его, чтобы делать все, что хотите. На примере скрипки, который вы мне дали, вы ничего не делаете с этим. –

+1

О да, моя вина, спасибо. –

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