>>619
var words = new Array();words.push('21');words.push('15');addTag();
function quote(str){
return str.replace(/(\W)/g, function($0){
return '\\' + $0;
});
};
function getTextNodes(node){
var result = [];
var nodes = document.evaluate('.//text()', node, null, 7, null);
for(var i = 0; i < nodes.snapshotLength; i++) result.push(nodes.snapshotItem(i));
return result;
}
function encodeAngleBrackets(str){
return str.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
function replaceTextNodeWithHtml(textNode, regExp, repHtml){
regExp = new RegExp('('+regExp+')','g');
if(regExp.test(textNode.nodeValue)){
var box = document.createElement('div');
box.innerHTML = encodeAngleBrackets(textNode.nodeValue).replace(regExp, repHtml);
var newNode = document.createDocumentFragment();
for(var i = 0; i < box.childNodes.length; i++) newNode.appendChild(box.childNodes[i].cloneNode(true));
textNode.parentNode.replaceChild(newNode, textNode);
}
}
function addTag() {
getTextNodes(document.body).forEach(function(node){
for (i = 0; i < (words.length); i++) words[i] = quote(words[i]);
replaceTextNodeWithHtml(node, words.join('|'), '<font color="#FF0000">$&</font>');
});
}