1 回答
弑天下
TA贡献1818条经验 获得超8个赞
第一, 那个不是空字符串
第二, 括号在正则中表示“捕获”,比如 '123abc'.replace(/(\d+)abc/, '$1')
其中 $1
便表示第一个括号中匹配的内容,即123
。
第三, 本例中,为了说明清楚问题,改为 'a'.match(/()a/)
, 所得结果将是 ["a", "", index: 0, input: "a", groups: undefined]
, 结果中的第一个元素为正则表达式()a
匹配到的全部字符串,第二个元素为第一个“捕获”()
的结果,这里表示单词边界,相当于正则表达式里的\b
。
回到题目,题目中的写法等价于 ''.match(/(\b)/)
,由于正则表达式主体就只有捕获,故结果中第一个元素和第二个元素相同,看起来像个"空字符串",实际不是“空”,请对比第三点理解。
- 1 回答
- 0 关注
- 852 浏览
添加回答
举报
0/150
提交
取消