javascript - JavaScript - 为什么使用 RegEx 进行拆分会产生空白数组?
问题描述
我正在处理 RegEx 问题,但遇到了一些意外行为。
如果我用单词 cherters ( )拆分单词“Hello”,\w
我会得到一个空字符串数组:
"Hello".split(/\w/)
Array(6) [ "", "", "", "", "", "" ]
我希望你好。
为什么会这样?
我可以使用什么 RegEx 来创建所需的结果?
编辑
我想使用 RegEx 的全部原因是因为我有一个包含表情符号的字符串,Hello
例如,我想拆分字符串但保持表情符号 (Unicode) 保持不变。
我应该先解释一下。
感谢大家的帮助,在我意识到两者之间的区别之后,我match
也split
没有花很长时间对 Emoji 问题进行排序:
"Hello ".match(/(\w)|([^\u0000-\u007F]+)/g)
Array(6) [ "H", "e", "l", "l", "o", "" ]
解决方案
您与(匹配内容)混淆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"]
推荐阅读
- java - 递归方法的理解(排列)
- python - 如何获得二值图像的高度、宽度、周长和面积?
- ios - 如何在音频线程之外使用通过使用 AVAudioEngine 获得的 PCM 缓冲区的数据?
- python-3.x - 使用 python 调度程序更改 RTSP 视频
- python - 对列表的熊猫列进行排序并调用其他列
- python-3.x - 使用输入输出文件在 Python 中进行并行处理
- vue.js - Vue.js 中的默认值选择类型
- excel - 使用excel VBA组合具有相同标题格式的多个文本文件?
- arrays - 从 csv 列表使用 Powershell 发送电子邮件
- wordpress - 在共享主机上获得专用 IP 是否明智?