如何重新创建此列表以正常逗号分隔?

时间:2013-01-15 13:03:45

标签: jquery

我有以下字符串

w[]=18&w[]=2&w[]=2[]=2

我想创建一个jQuery函数,使其逗号分隔如下:

18,2,2,2

3 个答案:

答案 0 :(得分:0)

您可以将String#replace与正则表达式匹配任何非数字,并删除前导逗号:

var str = "w[]=18&w[]=2&w[]=2[]=2";
str = str.replace(/\D+/g, ',').substring(1);

Live Example | Source

答案 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(',');