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

JavaScript中匹配'(任意数字)'并分割字符串为数组的方法

解决带括号数字的字符串分割问题

嘿,我来帮你搞定这个字符串分割的问题!你之前遇到的问题是因为正则只匹配了单个数字,而没有匹配完整的(数字)格式,那咱们来调整一下正则表达式就行。

正确的正则表达式

你需要用/\(\d+\)/作为分割的正则,拆解一下这个正则的意思:

  • \(:转义左括号,因为括号在正则里是特殊字符,必须转义才能匹配字面量的(
  • \d+:匹配一个或多个数字(\d是数字的简写,+表示至少出现一次)
  • \):转义右括号,匹配字面量的)

代码示例

直接看实际使用的例子:

const someString = "(1)some words (2)other words (3)other words";
// 用正确的正则分割字符串
const splitResult = someString.split(/\(\d+\)/);
console.log(splitResult);
// 输出: ["", "some words ", "other words ", "other words"]

优化:过滤空字符串和多余空格

你会发现结果里第一个是空字符串,这是因为原字符串开头就是(1),分割后会留下前面的空内容。如果想得到干净的内容,可以再加一步过滤:

const cleanResult = splitResult
  .map(item => item.trim()) // 去除每个元素前后的空格
  .filter(item => item !== ""); // 过滤掉空字符串
console.log(cleanResult);
// 输出: ["some words", "other words", "other words"]

为啥原来的正则不行?

你之前用的/[0-9]/(等价于/\d/)只会匹配单个数字字符,所以它会把(1)里的1当成分隔符,分割后会把(和)留在结果里,导致输出完全不符合预期,比如:

const badResult = someString.split(/[0-9]/);
console.log(badResult);
// 输出: ["(", "", ")some words (", "", ")other words (", "", ")other words"]

内容的提问来源于stack exchange,提问作者R3ter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:23:28