

Randall Munroe's (from xkcd) newest idea - rbmoshe
http://kolodny.github.io/secrets/blog/2013/11/10/make-news-more-fun/

======
bazzargh
Someone posted similar js when this xkcd was discussed yesterday
([https://news.ycombinator.com/item?id=6696355](https://news.ycombinator.com/item?id=6696355)),
but also missed that js lets you grab nodesets using xpaths directly:

    
    
      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).

~~~
rbmoshe
Thanks for the ignoreCase problem, I fixed it. I actually was using a \b in
the link but forgot to update the source accordingly. The reason I use \s\s*
over \s+ is because I once saw that it has some performance benefits, although
it really doesn't make a difference

------
rbmoshe
Time to find a text version of cspan

