4 ms·
Someone posted similar js when this xkcd was discussed yesterday (https://news.ycombinator.com/item?id=6696355 https://news.ycombinator.com/item?id=6696355), bu
by bazzargh 13y ago
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 13y agoThanks 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