, , , . , node, , , , .
, , RegExp
const whatToReplace = {
ipsum: 'IPSUM',
'Vivamus|vehicula': 'VROOM!',
'^Donec': 'donut',
'eros': 'lust',
'semper': 'always'
};
, RegExp .
const whatToReplace = [
[/ipsum/gi, 'IPSUM'],
[/Vivamus|vehicula/, 'VROOM!'],
[/^Donec/, 'donut'],
[/eros/, 'lust'],
[/semper/, 'always']
];
for...of for...in :
const whatToReplace = [
[/ipsum/gi, 'IPSUM'],
[/Vivamus|vehicula/gi, 'VROOM!'],
[/^Donec/gi, 'donut'],
[/eros/gi, 'lust'],
[/semper/gi, 'always']
];
const contentNode = document.querySelector(".content");
let walk = document.createTreeWalker(contentNode,NodeFilter.SHOW_TEXT,null,false);
let node;
while((node = walk.nextNode())) {
for (let [rx, replacement] of whatToReplace) {
node.nodeValue = node.nodeValue.replace(rx, replacement);
}
}
, node, , , . .content, querySelector getElementsByClassName, , .
, , , :
let whatToReplace = {
ipsum: 'IPSUM',
'Vivamus|vehicula': 'VROOM!',
'^Donec': 'donut',
'eros': 'lust',
'semper': 'always'
};
whatToReplace = Object.entries(whatToReplace).reduce(function (acc, [key, value]) {
acc.push([new RegExp(key, 'gi'), value])
return acc;
}, []);
const contentNode = document.querySelector(".content");
let walk = document.createTreeWalker(contentNode,NodeFilter.SHOW_TEXT,null,false);
let node;
while((node = walk.nextNode())) {
for (let [rx, replacement] of whatToReplace) {
node.nodeValue = node.nodeValue.replace(rx, replacement);
}
}
, DOM. , node, / . . , DOM, , , DOM, DOM:
const whatToReplace = [
[/ipsum/gi, 'IPSUM'],
[/Vivamus|vehicula/gi, 'VROOM!'],
[/^Donec/gi, 'donut'],
[/eros/gi, 'lust'],
[/semper/gi, 'always']
];
const contentNode = document.querySelector(".content");
const parent = contentNode.parentNode;
const placeholder = document.createElement('div');
parent.replaceChild(placeholder, contentNode);
let walk = document.createTreeWalker(contentNode,NodeFilter.SHOW_TEXT,null,false);
let node;
while((node = walk.nextNode())) {
for (let [rx, replacement] of whatToReplace) {
node.nodeValue = node.nodeValue.replace(rx, replacement);
}
}
parent.replaceChild(contentNode, placeholder);
, , Chrome, DOM, , , , . Firefox, . , DOM, -, 5% - Edge, - RegExp - .