До дня народження Далай-лами

Вчора я йшов кудись по місту і раптом замислився, як можна реалізувати на JavaScript поділ рядка з символів за допомогою регулярного виразу і з повним урахуванням Юнікоду.

Після переходу від Perl до JavaScript багато років тому, я відчував за свій новий мову певний комплекс неповноцінності через недостатню підтримку Юнікоду. За весь той час, поки JavaScript робив у цьому напрямку свій великий стрибок (при переході від ES5 до ES6), у мене в закладках залишилося кілька хороших статей.

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
JavaScript has a Unicode problem
Unicode-aware regular expressions in ECMAScript 6
ES6 Strings (and Unicode ) in Depth

В останній з них пропонувався рецепт розбиття рядка на символи з урахуванням Unicode за допомогою нового оператора
...
Наприклад (хабровский парсер не дає чомусь ввести цей приклад кодом, замінює мультибайтові символи на порожні рядки):



І ось я вчора задумався, чи можна реалізувати те ж саме за допомогою нових регулярних виразів. В голову прийшла проста ідея, яка на перевірку виявилася вірна:



Сьогодні я раптово зрозумів, що вчора якраз був день народження Далай-лами. Тому мені здалося, що завершити цю замітку можна невеликий жартом на JavaScript в честь винуватця торжества.

const nothingness = /[^]{0}/;
const nothing = ";

console.log(nothing.search(nothingness));
// 0
console.log(nothing.match(nothingness));
// [ ", index: 0, input: "]
console.log(nothing.split(nothingness));
// []
console.log(nothing.replace(nothingness, nothing));
// "
console.log(nothingness.test(nothing));
// true



Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.