正则匹配[]外部的内容
背景
客户要求将以下字符串转为数组:
"砷、苯、苯并[a]芘、二苯并[a、h]蒽、五氯苯酚、" ==> [砷, 苯, 苯并[a]芘, 二苯并[a、h]蒽, 五氯苯酚]
正文
刚开始通过匹配、,后来发现有问题,因为[]内的、不能拆解,就被难倒了,网上也没查到。最后求助余大佬解决,发出来以作学习
var reg = /([^、\[]+(\[[^\d]+?\]){0,1}([^、])?)/ig
案例
var abc = "砷、苯、苯并[a]芘、二苯并[a、h]蒽、五氯苯酚、";
var reg = /([^、\[]+(\[[^\d]+?\]){0,1}([^、])?)/ig
abc.match(reg);
// ["砷", "苯", "苯并[a]芘", "二苯并[a、h]蒽", "五氯苯酚"]