字符串拆分与Unicode

时间:2015-06-22 21:51:58

标签: javascript unicode

首先,我一直在网上搜索此解决方案。

如何:

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

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

简单地表达我想做的事情。但也有其他Unicode字符,如poo。

3 个答案:

答案 0 :(得分:7)

正如JavaScript has a Unicode problem中所述,在ES6中,您可以使用新的...点差运算符轻松完成此操作。这会导致字符串迭代器(另一个新的ES6特性)在内部使用,并且因为迭代器设计用于处理代码点而不是UCS-2 / UTF-16代码单元,所以它可以按照您想要的方式工作:

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

在此处试试: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

更通用的解决方案:

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

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

答案 1 :(得分:0)

for ... of可能循环通过包含Unicode字符的字符串,

let string = ""
for(var c of string)
    console.log(c);

答案 2 :(得分:0)

上述解决方案适用于简单的表情符号,但不适用于扩展集和使用 Surrogate Pairs 的表情符号

例如:

column1sum = (df.groupby('Type')['column1'].sum())
column2sum = (df.groupby('Type')['column2'].sum())

a-total = column1['A'] - column2['A']

print ('The Sold Orders order value total = ', "%.2f" % a-total)

要正确处理这些情况,您需要一个专门构建的库,例如:

https://github.com/dotcypress/runes

https://github.com/essdot/spliddit