格式是:xxxx(yyy)(zzzzz) 可能有多个括号 转换为['xxxx',yyy,zzzzz] 有什么优雅的方法吗?
认证高级PHP讲师
把(替换成,,把(替换成空字符串,然后用,分隔,看这样行么:
(
,
var text = "xxxx(yyy)(zzzzz)"; var arr = text.replace(/\(/g, ',').replace(/\)/g, '').split(','); console.log(arr); // ["xxxx", "yyy", "zzzz"]
text = "xxxx(yyy)(zzzzz)"; Array.prototype.addItem = function(item){this.push(item);return this} var arr = text.match(/\((.+?)\)/g).map(function(v){return v.slice(1,-1)}).reverse().addItem(text.match(/.+?\(/)[0].slice(0,-1)).reverse(); console.log(arr);
从你的结果来看,yyy zzz应该是Number吧,只要在map的回调函数里面做下处理就好了。
yyy
zzz
map
正则表达式。
用正则,看看还有没有优雅的,正确性有待验证
var xx = "xxxx(yyy)(zzzzz)"; var arr = xx.split(/(?:\)\(|\)|\()/); arr.pop(); console.log(arr);
把
(
替换成,
,把(
替换成空字符串,然后用,
分隔,看这样行么:从你的结果来看,
yyy
zzz
应该是Number吧,只要在map
的回调函数里面做下处理就好了。正则表达式。
用正则,看看还有没有优雅的,正确性有待验证