I am trying to execute that really nice deentityify example in Douglas Crockfords J-TBP book using jsfiddle
String.method('deentityify', function() {
// The entity table. It maps entity names to
// characters.
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
// Return the deentityify method.
return function() {
// This is the deentityify method. It calls the string
// replace method, looking for substrings that start
// with '&' and end with ';'. If the characters in
// between are in the entity table, then replace the
// entity with the character from the table. It uses
// a regular expression (Chapter 7).
return this.replace(/&([^&;]+);/g, function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
});
};
}());
document.writeln('<">'.deentityify()); // <">
This code-snippet depends on a bit of sugar, namely the method
method, that you have to define beforehand. (It's described early on in the book.) An online copy and explanation of it are in the "Sugar" section of Crockford's article "Classical Inheritance in JavaScript". It looks like this:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
A corrected version of your Fiddle, incorporating the above, is at http://jsfiddle.net/W9Ncd/.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With