You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何拆分字符串并保留标点符号?

实现保留标点的字符串拆分方案

当然可以实现,推荐两种简单的正则方案:

方案一:带捕获组的split + 过滤空值

使用split结合包含捕获组的正则表达式,捕获组会把分割时的标点符号保留到结果数组中,最后过滤掉拆分产生的空字符串即可:

var str = "(someword,bbb)";
var arr = str.split(/(\W)/).filter(item => item !== '');
// 输出:["(", "someword", ",", "bbb", ")"]

这里\W匹配所有非单词字符(即标点、括号这类符号),括号()将其设为捕获组,split时会把该组内容也加入结果数组;filter用来清除拆分开头/结尾可能出现的空字符串。

方案二:直接match匹配目标元素

更简洁的方式是用match全局匹配所有目标元素,正则规则为“连续字母数字”或“单个非单词字符”:

var str = "(someword,bbb)";
var arr = str.match(/\w+|\W/g);
// 输出:["(", "someword", ",", "bbb", ")"]

\w+匹配连续的字母数字组合,\W匹配单个非单词字符,g标志开启全局匹配,直接得到完整的目标数组,无需额外过滤。

如果遇到多个连续标点(比如"(someword,,bbb)"),两种方案都会自动将每个标点拆分为单独元素,完全符合需求。

内容的提问来源于stack exchange,提问作者Andre Retro Pie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:43:11