var split = (function () {
let inline = {
identifier: /^[a-zA-Z_$]+[a-zA-Z0-9_$]+/,
str: /^['"]+.*['"]+/,
char: /^[^\`\~\!@#\$\%\^\&\*\(\)\_\-\+\=\[\]\{\}\:\;\"\'\<\,\>\.\?\/\\\|\s]+/,
space: /^\s+/,
punct: /^[\`\~\!@#\%\^\&\*\(\)\-\+\=\[\]\{\}\:\;\<\,\>\.\?\/\\\|]/,
}
function split(str) {
if (!str || typeof str != 'string') {
return false;
}
let substr = str
let cap = null
let arr = []
let len = 0;
let matches = '';
while (substr) {
if ((cap = inline.identifier.exec(substr))) {
matches = cap[0]
len = matches.length
arr.push(matches)
substr = substr.slice(len)
}
if ((cap = inline.str.exec(substr))) {
matches = cap[0]
len = matches.length
arr.push(matches)
substr = substr.slice(len)
}
if ((cap = inline.char.exec(substr))) {
matches = cap[0]
len = matches.length
arr.push(matches)
substr = substr.slice(len)
}
if ((cap = inline.space.exec(substr))) {
matches = cap[0]
len = matches.length
arr.push(matches)
substr = substr.slice(len)
}
if ((cap = inline.punct.exec(substr))) {
matches = cap[0]
len = matches.length
arr.push(matches)
substr = substr.slice(len)
}
}
return arr;
}
return split
})();
var parseElement = (function(){
function parse(str) {
let arr = split(str);
let elems = [];
for(let i = 0; i < arr.length; i++) {
let str = `<span>${arr[i].replace(/\s/g,' ')}</span>`;
elems.push(str)
}
let style = `font-size: 14px;
font-family: Consolas, monospace;
letter-spacing: 0;
line-height: 20px;
`;
let line = `<div class="line" style="${style}"><span>${elems.join("")}</span></div>`;
return line;
}
return parse;
})();
document.write(parseElement('let year = 2022;'))
* {
margin: 0;
padding: 0;
}
console