@nfrasser/simple-html-tokenizer
Version:
Simple HTML Tokenizer is a lightweight JavaScript library that can be used to tokenize the kind of HTML normally found in templates.
28 lines • 2.87 kB
JavaScript
var HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;
var CHARCODE = /^#([0-9]+)$/;
var NAMED = /^([A-Za-z0-9]+)$/;
var EntityParser = (function () {
function EntityParser(named) {
this.named = named;
}
EntityParser.prototype.parse = function (entity) {
if (!entity) {
return;
}
var matches = entity.match(HEXCHARCODE);
if (matches) {
return "&#x" + matches[1] + ";";
}
matches = entity.match(CHARCODE);
if (matches) {
return "&#" + matches[1] + ";";
}
matches = entity.match(NAMED);
if (matches) {
return this.named[matches[1]] || "&" + matches[1] + ";";
}
};
return EntityParser;
}());
export default EntityParser;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVudGl0eS1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUM7QUFDNUMsSUFBTSxRQUFRLEdBQU0sYUFBYSxDQUFDO0FBQ2xDLElBQU0sS0FBSyxHQUFTLGtCQUFrQixDQUFDO0FBRXZDO0lBQ0Usc0JBQW9CLEtBQUs7UUFBTCxVQUFLLEdBQUwsS0FBSyxDQUFBO0lBQ3pCLENBQUM7SUFFRCw0QkFBSyxHQUFMLFVBQU0sTUFBTTtRQUNWLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNaLE1BQU0sQ0FBQztRQUNULENBQUM7UUFDRCxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDWixNQUFNLENBQUMsUUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQUcsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNaLE1BQU0sQ0FBQyxPQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBRyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQUcsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXJCRCxJQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEhFWENIQVJDT0RFID0gL14jW3hYXShbQS1GYS1mMC05XSspJC87XG5jb25zdCBDSEFSQ09ERSAgICA9IC9eIyhbMC05XSspJC87XG5jb25zdCBOQU1FRCAgICAgICA9IC9eKFtBLVphLXowLTldKykkLztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50aXR5UGFyc2VyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuYW1lZCkge1xuICB9XG5cbiAgcGFyc2UoZW50aXR5KSB7XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IG1hdGNoZXMgPSBlbnRpdHkubWF0Y2goSEVYQ0hBUkNPREUpO1xuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICByZXR1cm4gYCYjeCR7bWF0Y2hlc1sxXX07YDtcbiAgICB9XG4gICAgbWF0Y2hlcyA9IGVudGl0eS5tYXRjaChDSEFSQ09ERSk7XG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIHJldHVybiBgJiMke21hdGNoZXNbMV19O2A7XG4gICAgfVxuICAgIG1hdGNoZXMgPSBlbnRpdHkubWF0Y2goTkFNRUQpO1xuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lZFttYXRjaGVzWzFdXSB8fCBgJiR7bWF0Y2hlc1sxXX07YDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==