JavaScript字符串转换为数组

高分请分析下,JavaScript字符串转换为数组?

JavaScript有一个字符串变量: var str = "1,学生|2,老师|3,用户|4,管理员|"; 变量是用","和"|"分隔的(也就是“逗号”和“竖线”分隔的),谁能帮把它转换为两个数组,a={1,2,3,4} 和b{学生,老师,用户,管理员}。不胜感激!方法最好能写简单点,我是初学者。谢谢。
1楼的虽然把字符串放入我两个数组但是没对应,a数组为{1,2,3,4, },b数组为{ ,学生,老师,用户,管理员}。a数组最后多一个空元素,b数组最前面多一个空元素,能不能打它们统一对应了,清除那些空元素,谢谢。至于2楼的方法不能使用,报错!
最新回答
许多

2024-11-27 05:37:41

var a,b,c,d;
var str="1,学生|2,老师|3,用户|4,管理员|";
c=str.replace(/\D{1,}/g,","); //清除非数字并用","替换 ,c="1,2,3,4"
d=str.replace(/[\d|]/g,""); //清除数字和"|",d=",学生,老师,管理员"
a=c.split(","); //分隔后存入数组a
b=d.split(","); //分隔后存入数组b
alert(a+"\n\n"+d);
//也可以一步到位
a=str.split(/\D|/);
b=str.split(/|\d/);
alert("一步到位\n"+a+"\n\n"+d);
雨零

2024-11-27 04:38:17

第一种方法:(推荐)
var str = "1,学生|2,老师|3,用户|4,管理员|";
var a = str.match(/\d+/g); //查询数字
var b = str.match(/[\u4e00-\u9fa5]+/g); //查询汉字
console.log(a);
console.log(b);
第二种方法:
var str = "1,学生|2,老师|3,用户|4,管理员|";
var a = [];
str = str.replace(/\d+/g,function(r){
a.push(r);
return "";
});
var b = str.replace(/\|/g,"").split(",");
b.shift();
console.log(b);

参考正则表达式
白云下的棉絮

2024-11-27 05:45:27

var a=new Array();
var b=new Array();

var str = "1,学生|2,老师|3,用户|4,管理员|";
var c=str.split("|");
for(var i=0;i<c.length;i++)
{
var tmp=c[i].split(",");
a[i]=tmp[0];
b[i]=tmp[1];
}
瑾色如弦

2024-11-27 05:05:45

<script>
var str = "1,学生|2,老师|3,用户|4,管理员|",a=[],b=[],temp=str.split("|"),i=0;
//将字符串用"|"符号分割后存入 temp数组
for(;i < temp.length;i++)
{
a.push(temp[i].split(",")[0]);//将temp数组的每个元素“1,学生”用","分割,分别存入a,b数组。
b.push(temp[i].split(",")[1]);
}
alert(a.join(",")+"\n"+b.join(","));//将a,b数据元素用","链接,alert出来测试最后结果。
</script>