首页 > 解决方案 > JavaScript - 为什么使用 RegEx 进行拆分会产生空白数组?

问题描述

我正在处理 RegEx 问题,但遇到了一些意外行为。
如果我用单词 cherters ( )拆分单词“Hello”,\w我会得到一个空字符串数组:

"Hello".split(/\w/)

Array(6) [ "", "", "", "", "", "" ]

我希望你好。
为什么会这样?
我可以使用什么 RegEx 来创建所需的结果?

编辑

我想使用 RegEx 的全部原因是因为我有一个包含表情符号的字符串,Hello 例如,我想拆分字符串但保持表情符号 (Unicode) 保持不变。
我应该先解释一下。

感谢大家的帮助,在我意识到两者之间的区别之后,我matchsplit没有花很长时间对 Emoji 问题进行排序:

"Hello ".match(/(\w)|([^\u0000-\u007F]+)/g)

Array(6) [ "H", "e", "l", "l", "o", "" ]

标签: javascriptregexsplit

解决方案


您与(匹配内容)混淆split(匹配分隔符)。match随着split您确定将实际内容分开的内容,因此将排除匹配项本身。随着match你得到你真正想要的。请注意,match您需要使用g修饰符明确表示您想要所有这些:

let arr = "Hello".match(/\w/g); // You need the g[lobal] modifier
console.log(arr); // ["H","e","l","l","o"]


推荐阅读