写一个正则表达式,获取带括号的数字,比如 '12[3]45[6]7' 期望结果是['3', '6']

吴彦欣
  • 1.3k

如何匹配'[d]',但是结果不包含'[]'

> '12[3]45[6]7'.match(/\[\d\]/g)
[ '[3]', '[6]' ]

如何修改正则表达式使结果等于 [ '3', '6' ]

评论
阅读 1.3k
3 个回答
'12[3]45[6]7'.match(/\d(?=\])/g)
//[ '3', '6' ]

/\b\d(?=\])/g


/(?<=\[)\d(?=\])/g

选一个能用的~

'12[3]45[6]78]123'.match(/.*?\[\d+\].*?/g).map(s=>{return s.replace(/.*?\[(\d+)\].*?/,'$1')})
// ["3", "6"]
> var num = [];
undefined
> '12[343]45[6]7'.replace(/\[(\d+)\]/g, function($1, $2) {num.push($2); return $1;})
'12[343]45[6]7'
> num
[ '343', '6' ]
撰写回答

登录后参与交流、获取后续更新提醒

宣传栏