Heim > Fragen und Antworten > Hauptteil
格式是:xxxx(yyy)(zzzzz)
可能有多个括号
转换为['xxxx',yyy,zzzzz]
有什么优雅的方法吗?
阿神2017-04-10 14:33:06
把(
替换成,
,把(
替换成空字符串,然后用,
分隔,看这样行么:
var text = "xxxx(yyy)(zzzzz)";
var arr = text.replace(/\(/g, ',').replace(/\)/g, '').split(',');
console.log(arr); // ["xxxx", "yyy", "zzzz"]
高洛峰2017-04-10 14:33:06
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
的回调函数里面做下处理就好了。
PHP中文网2017-04-10 14:33:06
用正则,看看还有没有优雅的,正确性有待验证
var xx = "xxxx(yyy)(zzzzz)";
var arr = xx.split(/(?:\)\(|\)|\()/);
arr.pop();
console.log(arr);