//String.prototype.mblength(string) { // count_utf8mb4 Object.defineProperty(String.prototype, 'mblength', { get () { const split = this.split("\u{200D}"); let count = 0; for (const s of split) { const num = Array.from(s.split(/[\ufe00-\ufe0f]/).join("")).length; count += num; } return count / split.length; } }); //count_utf8get function format(codepoints, radix, formatter = '', prefix = '') { els = ''; codepoints.forEach(function(codepoint, index) { converted = codepoint.codePointAt(0); if (radix != 'dec') { converted = eval('ConvertBase.dec2' + radix + '(' + converted + ')'); } if (formatter != '') { formatted = formatters[formatter](converted, (prefix ? prefix : '')); } else { formatted = converted; } els += '' + formatted + ''; // , ' }); return els; } formatters = { unicode: function(code) { return 'U+' + code; }, hex: function(code) { return '0x' + code; }, slash: function(code, prefix = '') { return '\\' + prefix + code; }, html: function(code, prefix = '') { return '&#' + prefix + code + ';'; } }