如何使用变量缩短代码,而不是每次都使用function smurfa() {
document.body.innerHTML = document.body.innerHTML.replace(/Katt/g,'Caca');
document.body.innerHTML = document.body.innerHTML.replace(/katt/g,'caca');
document.body.innerHTML = document.body.innerHTML.replace(/morr/g,'prutt');
document.body.innerHTML = document.body.innerHTML.replace(/Morr/g,'Prutt');
}
?
var where=document.body.innerHTML
var morf= document.body.innerHTML.replace(/Morr/g,'Prutt')
var results= where + morf;
results;
我尝试过创建变量,如:
$res = explode(",",$value);
foreach ($res as $v){
echo "tester: >> $v"."<br \>\n";
}
答案 0 :(得分:0)
尝试使用以下内容:
function smurfa(regex, replace) {
document.body.innerHTML = document.body.innerHTML.replace(regex, replace);
return smurfa;
}
smurfa(/Katt/g,'Caca')(/katt/g,'caca')(/morr/g,'prutt')(/Morr/g,'Prutt')
答案 1 :(得分:0)
您可以将变量设置为document.body
,因为这是一个对象,您可以更新其属性。将变量设置为属性本身将不起作用;变量不是对属性的引用,它们按值获取属性。
var b = document.body;
b.innerHTML = b.innerHTML.replace(/Katt/g, 'Caca');
你也可以链接替换:
b.innerHTML = b.innerHTML.replace(/Katt/g, 'Caca').replace(/katt/g, 'caca').replace(/morr/g, 'prutt').replace(/Morr/g, 'Prutt');
您还可以使用某个功能作为替换功能,立即执行所有替换:
b.innerHTML = b.innerHTML.replace(/katt|morr/gi, function(match) {
const replacements = { 'Katt': 'Caca', 'catt': 'caca', 'morr': 'prutt', 'Morr': 'Prutt' };
return replacements[match];
});
顺便说一下,像这样替换整个document.body
通常是一个坏主意。它导致整个DOM被丢弃并通过重新解析其HTML来替换。添加到元素的任何属性或事件侦听器都将丢失。
相反,您应该编写一个循环来查找所有文本节点,并替换它们的文本内容。