2016-02-02 3 views
-1

Мне нужен Javascript, который меняет весь текст на странице на определенную строку. Например, если я хотел установить каждое слово 'Hello':Как заменить каждое слово одним словом?

Перед:

Hey there, how are you? 

После:

Hello Hello Hello Hello Hello 

Как бы это сделать? Он будет делать это на всей странице, поэтому ему нужно будет оставить HTML-теги такими, какие они есть, и просто изменить содержимое текста.

Этот код должен быть выполнен после страница загружена.

+0

- это макет страницы, который должен оставаться неизменным после? если вы замените html-теги, все это будет беспорядочным беспорядком ... – dandavis

+0

Я полагаю, что он ссылается на innerHTML, но я также предполагаю, что он хочет взломать какую-то страницу haha. – Tupac

+0

Вы можете взглянуть на то, как это делают XKCD-подстановки , https://github.com/Posnet/xkcd-substitutions – Amy

ответ

3

function malkovich(node) { 
 
    if(node.nodeType === 1) 
 
    return [].forEach.call(node.childNodes, malkovich); 
 
    if(node.nodeType === 3) 
 
    node.textContent = node.textContent 
 
     .replace(/\b[A-Z]\w+/g, "Malkovich") 
 
     .replace(/\b[a-z]\w+/g, "malkovich") 
 
}
<h1>Hi, there!</h1> 
 
<p>Some <b>more</b> text...</p> 
 
<p>"Gallia est omnis divisa in partes tres, quarum <u>unam</u> incolunt <i>Belgae</i>, <u>aliam</u> <i>Aquitani</i>, <u>tertiam</u> qui ipsorum lingua <i>Celtae</i>, nostra <i>Galli</i> appellantur". </p> 
 
<button onclick="malkovich(document.body)">malkovich</button>

+0

приятный «мир привет»! такой отличный фильм ... – dandavis

+0

@ dandavis: да, абсолютно люблю его ... – georg

+0

Он отлично работает! Благодарю. – Thingy

0

Превратите все в строку, а затем использовать .replace метод

"Hey there, how are you?".replace(/[^\s]+/g, "Hello"); 
// replaces any non-space sequence with over 1 character 

// outputs "Hello Hello Hello Hello Hello" 

Я очень рекомендую https://regex101.com/

Вы можете также соответствовать персонажам [a-zA-Z]+ положительно, просто беспорядок вокруг с ним

Удача

+0

это не решает проблему не разрушения макета страницы ... – dandavis