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

修复JS正则捕获组问题:避免匹配制表符分隔的重复数字

修复正则以匹配仅空格分隔的重复数字串

你的问题出在正则里的 \s 元字符上——\s 会匹配任意空白字符,包括空格、制表符(\t)、换行符(\n)、换页符等,这就导致你的正则会误匹配制表符分隔的字符串,不符合题目要求的「仅由单个空格分隔」。

修复后的正则

把正则里的 \s 替换成普通的空格 即可:

let repeatNum = "42 42 42";
let reRegex = /^(\d+) \1 \1$/; // 修复后的正则
let result = reRegex.test(repeatNum);
console.log(result); // 输出 true

详细解释

  • ^ 和 $:锚定字符串的开头和结尾,确保整个字符串完全匹配,不会出现多余的前缀或后缀字符
  • (\d+):捕获一个或多个连续数字的分组,后续用 \1 引用这个分组的内容,实现「重复相同数字」的匹配
  • 替换后的空格 :严格匹配单个空格作为分隔符,只会识别空格,不会匹配制表符或其他空白字符

验证效果

测试制表符分隔的字符串时,正则会返回 false,符合题目要求:

let tabSeparated = "42\t42\t42";
console.log(reRegex.test(tabSeparated)); // 输出 false

内容的提问来源于stack exchange,提问作者a-pedro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:17:13