// exercise01 { let p = document.querySelector("p"); p.innerHTML = ((__rkt_body) => { const __rkt_to_regexp = (__pat, __global) => { const __flags = (__pat instanceof RegExp) ? Array.from(new Set((__pat.flags.replace(/g/g, '') + (__global ? 'g' : '')).split(''))).join('') : (__global ? 'g' : ''); return (__pat instanceof RegExp) ? new RegExp(__pat.source, __flags) : new RegExp(String(__pat), __flags); }; const __rkt_match_array = (__m) => (__m === null ? false : Array.from(__m, (__x) => __x === undefined ? false : __x)); const __rkt_replacement = (__s) => { if (typeof __s !== 'string') return __s; let __out = ''; for (let __i = 0; __i < __s.length; __i++) { const __ch = __s[__i]; if (__ch === '$') { __out += '$$'; continue; } if (__ch === '\\' && __i + 1 < __s.length) { const __n = __s[++__i]; if (__n >= '0' && __n <= '9') __out += (__n === '0' ? '$&' : ('$' + __n)); else __out += __n; } else __out += __ch; } return __out; }; return __rkt_body(__rkt_to_regexp, __rkt_match_array, __rkt_replacement); })((__rkt_to_regexp, __rkt_match_array, __rkt_replacement) => String(p.innerHTML).replace(__rkt_to_regexp(new RegExp("\\b\\w{9,}\\b"), true), __rkt_replacement(function(word) { return ("" + word + ""); }))); } // exercise02 { let p = document.querySelector("p"); p.insertAdjacentHTML("afterend", "Source: ForceM Ipsum"); } // exercise03 { let p = document.querySelector("p"); p.innerHTML = ((__rkt_body) => { const __rkt_to_regexp = (__pat, __global) => { const __flags = (__pat instanceof RegExp) ? Array.from(new Set((__pat.flags.replace(/g/g, '') + (__global ? 'g' : '')).split(''))).join('') : (__global ? 'g' : ''); return (__pat instanceof RegExp) ? new RegExp(__pat.source, __flags) : new RegExp(String(__pat), __flags); }; const __rkt_match_array = (__m) => (__m === null ? false : Array.from(__m, (__x) => __x === undefined ? false : __x)); const __rkt_replacement = (__s) => { if (typeof __s !== 'string') return __s; let __out = ''; for (let __i = 0; __i < __s.length; __i++) { const __ch = __s[__i]; if (__ch === '$') { __out += '$$'; continue; } if (__ch === '\\' && __i + 1 < __s.length) { const __n = __s[++__i]; if (__n >= '0' && __n <= '9') __out += (__n === '0' ? '$&' : ('$' + __n)); else __out += __n; } else __out += __ch; } return __out; }; return __rkt_body(__rkt_to_regexp, __rkt_match_array, __rkt_replacement); })((__rkt_to_regexp, __rkt_match_array, __rkt_replacement) => String(p.textContent).replace(__rkt_to_regexp(new RegExp("\\.\\s*"), true), __rkt_replacement(".
"))); } // exercise04 { let heading = document.querySelector("h1"); let p = document.querySelector("p"); let words = ((__rkt_body) => { const __rkt_to_regexp = (__pat, __global) => { const __flags = (__pat instanceof RegExp) ? Array.from(new Set((__pat.flags.replace(/g/g, '') + (__global ? 'g' : '')).split(''))).join('') : (__global ? 'g' : ''); return (__pat instanceof RegExp) ? new RegExp(__pat.source, __flags) : new RegExp(String(__pat), __flags); }; const __rkt_match_array = (__m) => (__m === null ? false : Array.from(__m, (__x) => __x === undefined ? false : __x)); const __rkt_replacement = (__s) => { if (typeof __s !== 'string') return __s; let __out = ''; for (let __i = 0; __i < __s.length; __i++) { const __ch = __s[__i]; if (__ch === '$') { __out += '$$'; continue; } if (__ch === '\\' && __i + 1 < __s.length) { const __n = __s[++__i]; if (__n >= '0' && __n <= '9') __out += (__n === '0' ? '$&' : ('$' + __n)); else __out += __n; } else __out += __ch; } return __out; }; return __rkt_body(__rkt_to_regexp, __rkt_match_array, __rkt_replacement); })((__rkt_to_regexp, __rkt_match_array, __rkt_replacement) => String(p.textContent).split(__rkt_to_regexp(new RegExp(" "), true))); let count = (words).length; heading.insertAdjacentHTML("afterend", ("

" + String(count) + " words

")); } // exercise05 { let p = document.querySelector("p"); let step = ((__rkt_body) => { const __rkt_to_regexp = (__pat, __global) => { const __flags = (__pat instanceof RegExp) ? Array.from(new Set((__pat.flags.replace(/g/g, '') + (__global ? 'g' : '')).split(''))).join('') : (__global ? 'g' : ''); return (__pat instanceof RegExp) ? new RegExp(__pat.source, __flags) : new RegExp(String(__pat), __flags); }; const __rkt_match_array = (__m) => (__m === null ? false : Array.from(__m, (__x) => __x === undefined ? false : __x)); const __rkt_replacement = (__s) => { if (typeof __s !== 'string') return __s; let __out = ''; for (let __i = 0; __i < __s.length; __i++) { const __ch = __s[__i]; if (__ch === '$') { __out += '$$'; continue; } if (__ch === '\\' && __i + 1 < __s.length) { const __n = __s[++__i]; if (__n >= '0' && __n <= '9') __out += (__n === '0' ? '$&' : ('$' + __n)); else __out += __n; } else __out += __ch; } return __out; }; return __rkt_body(__rkt_to_regexp, __rkt_match_array, __rkt_replacement); })((__rkt_to_regexp, __rkt_match_array, __rkt_replacement) => String(p.innerHTML).replace(__rkt_to_regexp(new RegExp("\\?"), true), __rkt_replacement("🤔"))); let out = ((__rkt_body) => { const __rkt_to_regexp = (__pat, __global) => { const __flags = (__pat instanceof RegExp) ? Array.from(new Set((__pat.flags.replace(/g/g, '') + (__global ? 'g' : '')).split(''))).join('') : (__global ? 'g' : ''); return (__pat instanceof RegExp) ? new RegExp(__pat.source, __flags) : new RegExp(String(__pat), __flags); }; const __rkt_match_array = (__m) => (__m === null ? false : Array.from(__m, (__x) => __x === undefined ? false : __x)); const __rkt_replacement = (__s) => { if (typeof __s !== 'string') return __s; let __out = ''; for (let __i = 0; __i < __s.length; __i++) { const __ch = __s[__i]; if (__ch === '$') { __out += '$$'; continue; } if (__ch === '\\' && __i + 1 < __s.length) { const __n = __s[++__i]; if (__n >= '0' && __n <= '9') __out += (__n === '0' ? '$&' : ('$' + __n)); else __out += __n; } else __out += __ch; } return __out; }; return __rkt_body(__rkt_to_regexp, __rkt_match_array, __rkt_replacement); })((__rkt_to_regexp, __rkt_match_array, __rkt_replacement) => String(step).replace(__rkt_to_regexp(new RegExp("!"), true), __rkt_replacement("😲"))); p.innerHTML = out; }