前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 JS 中将字符串切割成字符?

如何在 JS 中将字符串切割成字符?

作者头像
酷酷的哀殿
发布2020-10-26 10:20:50
1.3K0
发布2020-10-26 10:20:50
举报
文章被收录于专栏:酷酷的哀殿酷酷的哀殿

第一种方案:使用空字符串当做分隔符.

'Dragon ? '.split('')

(10) ["D", "r", "a", "g", "o", "n", " ", "�", "�", " "]

结果:失败,Emoji 无法正常切割

第二种方案:使用正则表达式切割

'Dragon ? '.split(/|/)

(10) ["D", "r", "a", "g", "o", "n", " ", "�", "�", " "]

结果:失败,Emoji 无法正常切割

第三种方案:使用 unicode 模式的正则表达式切割

'Dragon ? '.split(/|/u)

(9) ["D", "r", "a", "g", "o", "n", " ", "?", " "]

结果:成功,可以切割 Emoji

第四种方案:使用 ES 的语法

[...'Dragon ? ']

(9) ["D", "r", "a", "g", "o", "n", " ", "?", " "]

结果:成功,可以切割 Emoji


下面,我们测试一种更加复杂的场景:国旗。

" ?? ??".split(/|/u)

(7) [" ", "?", "?", " ", "?", "?", ""]

[..." ?? ??"]

(7) [" ", "?", "?", " ", "?", "?", ""]

很明显,两种切割方式的结果可能会不符合读者的直觉。

但是,这种分割结果是符合要求的。

实际上,根据 Unicode 的标准,国旗是通过多个字符组合而成。

比如,中国 ?? 是由"?" 和 "?" 组合而成。

["?", "?", "?"].join('')

"???"

["?", "?", "?"].join('')

"???"

3个字符调整顺序后再拼接,会展现出两种不同的国旗。对于程序员,如果遇到字符串切割、多行文本渲染、字符串逆序等需求时,一定要根据实际情况采用合适方案处理。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 酷酷的哀殿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档