如何用一个词替换每个词?
How do I replace every word with one word?
我想要 Javascript 将页面上的所有文本更改为特定字符串。例如,如果我想将每个单词设置为 'Hello':
之前:
Hey there, how are you?
之后:
Hello Hello Hello Hello Hello
这将如何完成?它会对整个页面执行此操作,因此需要保留 HTML 标签,只更改文本内容。
此代码必须在页面加载后执行。
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>
把所有东西都变成字符串,然后用.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"
也可以正向匹配字符[a-zA-Z]+
,随便乱用
祝你好运
我想要 Javascript 将页面上的所有文本更改为特定字符串。例如,如果我想将每个单词设置为 'Hello':
之前:
Hey there, how are you?
之后:
Hello Hello Hello Hello Hello
这将如何完成?它会对整个页面执行此操作,因此需要保留 HTML 标签,只更改文本内容。
此代码必须在页面加载后执行。
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>
把所有东西都变成字符串,然后用.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"
也可以正向匹配字符[a-zA-Z]+
,随便乱用
祝你好运