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

咨询:JavaScript中类似/|\/\?|/[asd]d++的奇怪语法是什么?

你看到的是JavaScript正则表达式

那串看起来像乱码的符号是正则表达式(RegExp),是JavaScript里专门用来处理字符串匹配、查找、替换的工具——Codewars里很多高手爱用它写极简解法,所以你会经常在顶级答案里见到。

先给你拆解基础逻辑:

  • JS里正则的字面量写法就是用/包裹模式,比如/abc/,开头结尾的/就是正则的边界标记。
  • 你贴的例子/|\/\?|/[asd]d++可能是输入时的格式小问题,正确的应该是类似/\/\?|[asd]d++/的结构,我给你拆解里面的关键符号:
    • \:转义符,把后面的特殊字符变成普通字符。比如\/就是匹配字符串里的/,\?就是匹配普通的?(这俩在正则里有特殊含义,所以要转义)。
    • |:表示“或”的逻辑,比如a|b就是匹配字符串里的a或者b。
    • [asd]:字符集,匹配a、s、d三个字符里的任意一个。
    • +:量词,代表前面的字符至少出现1次;++是ES2018新增的独占量词,匹配时会尽可能多取字符,而且不会回溯调整。

给你举个实际测试的例子,你可以在控制台跑这段代码验证:

// 测试修正后的正则
const regex = /\/\?|[asd]d++/;
console.log(regex.test('/?')); // 输出true,匹配到了/?
console.log(regex.test('add')); // 输出true,匹配到了ad+
console.log(regex.test('xddd')); // 输出false,x不在字符集里

作为初学者,不用急着啃这种极简写法:

  • 先从正则的基础概念入手,搞懂字符集、量词、转义符这些核心内容。
  • 遇到看不懂的正则,自己写小代码测试,看它能匹配哪些字符串,反向推导逻辑。
  • Codewars的顶级答案很多是为了追求短而写的,先把自己的解法写对、写清楚,再慢慢优化也不迟。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:28:23