如何用一个单词替换每个单词?

时间:2016-02-02 20:47:21

标签: javascript greasemonkey userscripts

我希望Javascript将页面上的所有文本更改为特定字符串。例如,如果我想将每个单词设置为“Hello”:

在:

Hey there, how are you?

后:

Hello Hello Hello Hello Hello

如何做到这一点?它会对整个页面执行此操作,因此需要保留HTML标记,只需更改文本内容。

此代码必须在页面加载后执行。

2 个答案:

答案 0 :(得分: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>
&#13;
&#13;
&#13;

答案 1 :(得分: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]+,只是搞乱它

祝你好运