js 讲一个字符串截取为数组,求大神!

liudashao0 2015-05-25 12:16:40
将一个这样的字符串
'中国',12,'中',23,'user1',23,'user3',12, 'xxx',xx 这个字符串长度是不固定,
截取成这样的一个数组[['中国',12],['中',23],['user1',23],['xxx',xx]]

求解!
...全文
326 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010892827 2015-05-28
  • 打赏
  • 举报
回复
楼主希望数组的第二个值是以数字的形式展现,如果楼主确定一定数字的话,应用版主的代码,将字符*1转数字即可 var s = "'中国',12,'中',23,'user1',23,'user3',12"; var arr = s.split(','); var rst = []; for (var i = 0; i < arr.length; i += 2) { rst.push([(arr[i] || '').replace(/'/g, ''), arr[i + 1]*1]); } console.log(rst)
Go 旅城通票 2015-05-26
  • 打赏
  • 举报
回复
引用 12 楼 xzy21com 的回复:
[quote=引用 11 楼 sohu8 的回复:] 楼主怎么不试试我的方法呢?哎???难道我的方法有错?不更简化你的字符串吗?
你自己不会测试下你的代码错到哪去了? var s = "'中国',12,'中',23,'user1',23,'user3',12"; var arr = s.split(',',2); console.log(arr);//返回 ["'中国'", "12"][/quote]
scscms太阳光 2015-05-26
  • 打赏
  • 举报
回复
引用 11 楼 sohu8 的回复:
楼主怎么不试试我的方法呢?哎???难道我的方法有错?不更简化你的字符串吗?
你自己不会测试下你的代码错到哪去了? var s = "'中国',12,'中',23,'user1',23,'user3',12"; var arr = s.split(',',2); console.log(arr);//返回 ["'中国'", "12"]
liudashao0 2015-05-25
  • 打赏
  • 举报
回复
引用 1 楼 pfczlc 的回复:
这不是小CASE么
求解啊?兄弟,js不太会!
forrg 2015-05-25
  • 打赏
  • 举报
回复
这不是小CASE么
Go 旅城通票 2015-05-25
  • 打赏
  • 举报
回复
引用 7 楼 liudashao0 的回复:
[quote=引用 5 楼 showbo 的回复:]

    var s = "'中国',12,'中',23,'user1',23,'user3',12";
    var arr = s.split(',');
    var rst = [];
    for (var i = 0; i < arr.length; i += 2) {
        rst.push([(arr[i] || '').replace(/'/g, ''), arr[i + 1]]);
    }
    console.log(rst)
谢版主回复, 但是打印之后是 想用 [['中国',12],['中',23],['user1',23],['xxx',xx]][/quote] 你确认你第二个是数字的话自己转换一下数据类型,字符串用单双引号无所谓,打印出来系统都是用双引号 rst.push([(arr[i] || '').replace(/'/g, ''), parseInt(arr[i + 1],10)]);
liudashao0 2015-05-25
  • 打赏
  • 举报
回复
引用 6 楼 xzy21com 的回复:
var str = "'中国',12,'中',23,'user1',23,'user3',12, 'xxx',xx";
var arr = [];
str.replace(/'([^']*)'\s*,\s*([^,]*)/g,function(a,b,c){
arr.push([b,c]);
});
console.log(arr);

谢谢回复,
但是打印之后是
想用 [['中国',12],['中',23],['user1',23],['xxx',xx]]
liudashao0 2015-05-25
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:

var s = "'中国',12,'中',23,'user1',23,'user3',12";
var arr = s.split(',');
var rst = [];
for (var i = 0; i < arr.length; i += 2) {
rst.push([(arr[i] || '').replace(/'/g, ''), arr[i + 1]]);
}
console.log(rst)

谢版主回复,
但是打印之后是
想用 [['中国',12],['中',23],['user1',23],['xxx',xx]]
scscms太阳光 2015-05-25
  • 打赏
  • 举报
回复
var str = "'中国',12,'中',23,'user1',23,'user3',12, 'xxx',xx";
var arr = [];
str.replace(/'([^']*)'\s*,\s*([^,]*)/g,function(a,b,c){
  arr.push([b,c]);
});
console.log(arr);
Go 旅城通票 2015-05-25
  • 打赏
  • 举报
回复

var s = "'中国',12,'中',23,'user1',23,'user3',12";
var arr = s.split(',');
var rst = [];
for (var i = 0; i < arr.length; i += 2) {
rst.push([(arr[i] || '').replace(/'/g, ''), arr[i + 1]]);
}
console.log(rst)
sohu8 2015-05-25
  • 打赏
  • 举报
回复
应该是原字符串.split(',',2)
sohu8 2015-05-25
  • 打赏
  • 举报
回复
原数组.split(',',2)
sohu8 2015-05-25
  • 打赏
  • 举报
回复
楼主怎么不试试我的方法呢?哎???难道我的方法有错?不更简化你的字符串吗?
scscms太阳光 2015-05-25
  • 打赏
  • 举报
回复
你要的结果不可能打印到
var xx = "aa";
console.log(['a',xx]);//打印也是 ["a", "aa"],不管你设xx为什么值都不可能直接显示xx

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧