将输入字段值转换为字符串数组

时间:2013-07-03 14:46:49

标签: jquery html input

我正在使用一个API,它接受来自名为#tags的输入字段的字符串数组。最好的方法是什么?它还应删除“标签”之间的任何逗号,如果没有标签,则为[]。

输入:tag1,tag2,tag3 成为:[“tag1”,“tag2”,“tag3”]

HTML

<input id="tags" type="text" placeholder="tags" name="" value="">

我当前获取标记值的方式:

createPost('canvasID',{tags:$('#tags').val()});

5 个答案:

答案 0 :(得分:7)

使用split功能:

var valueInserted = $("#tags").val(); // "tag1,tag2,tag3, "two words""
var tags = valueInserted.split(",");  // ["tag1", "tag2", "tag3", "two words"]

另外,trim()来自tags数组的字符串:

for (var i in tags) {
    tags[i] = tags[i].trim();
}

JSFIDDLE

或内联,使用正则表达式:

 var tags = $('#tags').val().split( /,\s*/ );

JSFIDDLE

可以找到文档here

答案 1 :(得分:1)

您可以使用正则表达式查找逗号后跟可能的空格来split字符串:

var yourArray = $('#tags').val().split( /,\s*/ );

然后

createPost('canvasID',{tags: tagsArray});

答案 2 :(得分:0)

使用split功能。

createPost('canvasID',{tags:$('#tags').val().split(',')});

答案 3 :(得分:0)

   var str = "tag1,tag2,tag3,tag4";
   var res = str.split(",");

结果:["tag1", "tag2", "tag3", "tag4"]

答案 4 :(得分:0)


   var res = name.replace(/["]+/g, ""); // remove """"               

 

   global with /g
   var resa = res.replace(/[[]+/g, ""); // remove [
   var reso = resa.replace(/[,]+/g, "");// chop            //,,,,,
   str = reso.substring(0, reso.length - 1);//         finally   chop off last ]
// you can chop off all double quotes after