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 關注
- 906 瀏覽
添加回答
舉報
0/150
提交
取消