According to the 6th Edition of JavaScript: The Definitive Guide (Flanagan, 2011):
ECMAScript v3 specifies that the replacement argument to
replace()
may be a function instead of a string.
I'm looking at some code written in 2005, where a complicated workaround has been used to replace parts of a string. The comments for the code clearly indicate that it originally used the functional replace()
method but that the workaround was necessary for cross-browser compatibility.
ECMAScript v3 came out in 1999 and, as far as I can tell (from this discussion post and this blog post), ECMAScript v3 was supported across the main browsers since late 2001. Could the author have been wrong, or can someone shed light on why such a workaround might have been necessary in 2005?
...
UPDATE The actual comment by the author of the code says:
lambda functions in RegExps are currently a problem with too many browsers.
changed code to work around.
The author code works for or runs this business, though the code itself may well be a personal project.