字符串拆分与Unicode

L2L*_*L2L 2 javascript unicode

首先,我一直在网上搜索这个解决方案.

如何:

<'???'.split('');

> ['?','?','?']
Run Code Online (Sandbox Code Playgroud)

简单地表达我想做的事情.而且还有像poo这样的其他Unicode字符.

Mat*_*ens 8

正如JavaScript中所解释的那样有一个Unicode问题,在ES6中你可以通过使用新的...扩展运算符很容易地做到这一点.这会导致字符串迭代器(另一个新的ES6特性)在内部使用,并且因为该迭代器旨在处理代码点而不是UCS-2/UTF-16代码单元,所以它可以按照您想要的方式工作:

console.log([...'']);
// ? ['', '']
Run Code Online (Sandbox Code Playgroud)

在这里尝试:https://babeljs.io/repl/#?experimental = true&evaluate = true&locose = false&specs = 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

更通用的解决方案:

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

console.log(splitStringByCodePoint(''));
// ? ['', '']
Run Code Online (Sandbox Code Playgroud)