2017-02-25 109 views
1

我的例子:如何将unicode字符串拆分为多个字符?

let $log = console.log; 
 

 
for (let i of 'Nguyễn Thanh Tú') $log(i);

输出:

 
N 
g 
u 
y 
ê 
̃ 
n 
T 
h 
a 
n 
h 
T 
u 
́ 

我想(我的目标)的字符串分割到:

 
N 
g 
u 
y 
ễ 
n 

T 
h 
a 
n 
h 

T 
ú 

但我可代码中存在2个问题。

  1. 它分裂[ễ][ê, ~]。我想要[ễ]

  2. 它将[ T]分割为[ T]。我想要[ ,T]

我也试过:

let arr = 'Nguyễn Thanh Tú'.split(''); 
 

 
arr.forEach(x => $log(x));

它记录了相同的结果,第一种情况。

我该如何解决这些问题?

回答

1

在最新的浏览器,你可以使用String#normalize

for (let c of 'Nguyễn Thanh Tú'.normalize()) console.log(c)

+0

我觉得它工作的唯一原因是因为我跑在我的浏览器,它做到了。你的结果不同吗?这很有趣。 – gyre

+0

我没有仔细观察,它*不需要进行标准化。 –

+2

但请注意,您不需要将其分散到数组中。只是正常化就足够了。 OP的'let ... of'按照他们想要的方式在标准化的字符串上工作。 –

相关问题