Randall Munroe's (from xkcd) newest idea
kolodny.github.io
kolodny.github.io
var snap = document.evaluate('//text()',
document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null);
for (var i=0;i<snap.snapshotLength; i++) {
t=snap.snapshotItem(i);
t.textContent = replace(t.textContent);
}
In addition your code uses \s\s* when you just mean \s+; also you are using case-insensitive matches for the 'dictRegex' pattern with case-sensitive matches for the individual patterns, so you replace eg 'election' (lower case e) with 'undefined'.Like the other js implementation you're not matching word boundaries (\b).