Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

String Split With Unicode

First off I been searching the web for this solution.

How to:

<''.split('');

> ['','','']

Simply express of what I'll like to do. But also with other Unicode characters like poo.

like image 894
L2L2L Avatar asked Dec 25 '22 17:12

L2L2L


1 Answers

As explained in JavaScript has a Unicode problem, in ES6 you can do this quite easily by using the new ... spread operator. This causes the string iterator (another new ES6 feature) to be used internally, and because that iterator is designed to deal with code points rather than UCS-2/UTF-16 code units, it works the way you want:

console.log([...'💩💩']);
// → ['💩', '💩']

Try it out here: https://babeljs.io/repl/#?experimental=true&evaluate=true&loose=false&spec=false&code=console.log%28%0A%20%20%5B%2e%2e%2e%27%F0%9F%92%A9%F0%9F%92%A9%27%5D%0A%29%3B

A more generic solution:

function splitStringByCodePoint(string) {
  return [...string];
}

console.log(splitStringByCodePoint('💩💩'));
// → ['💩', '💩']
like image 183
Mathias Bynens Avatar answered Jan 06 '23 12:01

Mathias Bynens