我有以下字符串
w[]=18&w[]=2&w[]=2[]=2
我想创建一个jQuery函数,使其逗号分隔如下:
18,2,2,2
答案 0 :(得分:0)
您可以将String#replace
与正则表达式匹配任何非数字,并删除前导逗号:
var str = "w[]=18&w[]=2&w[]=2[]=2";
str = str.replace(/\D+/g, ',').substring(1);
答案 1 :(得分:0)
更新:使用substring()
和split()
要容易得多:
var myArray = str.substring(4).split("&w[]=");
(假设缺少&w
是一个错字!)
substring(4)
离开了第一个字符:w[]=
split()
使用&w[]=
作为分隔字符串将字符串拆分为元素。<小时/> 旧解决方案:
只需找到w[]=
个匹配项,然后使用replace()
函数将,
替换为var str="w[]=18&w[]=2&w[]=2[]=2";
var fixedStr=str.replace(/\&/g,",").replace(/\w?\[\]\=/g,"");
,
要将字符串转换为数组(当您说'list'时,我想你的意思是'数组'),你需要在var myArray = fixedStr.split(",");
s split()
处找到它:
{{1}}
答案 2 :(得分:0)
以正则表达式的方式,假设非数字键和数值,如示例所示,我会直接match()
所有数字。这将返回一个包含字符串中所有数字匹配(而不是数字)的数组:
var query_string = 'w[]=18&w[]=2&w[]=2[]=2';
var numbers_array = query_string.match(/\d{1,}/g);
如果您需要CSV字符串,则可以使用join()
分隔符,
数组值:
var numbers_csv = numbers_array.join(',');