UNPKG

@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
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==