javascript - javascrip字符串转数组
PHP中文网
PHP中文网 2017-04-10 14:31:06
[JavaScript讨论组]

格式是:xxxx(yyy)(zzzzz)
可能有多个括号
转换为['xxxx',yyy,zzzzz]
有什么优雅的方法吗?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(4)
阿神

(替换成,,把(替换成空字符串,然后用,分隔,看这样行么:

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的回调函数里面做下处理就好了。

阿神

正则表达式。

PHP中文网

用正则,看看还有没有优雅的,正确性有待验证

var xx = "xxxx(yyy)(zzzzz)";
var arr = xx.split(/(?:\)\(|\)|\()/);
arr.pop();
console.log(arr);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号