我正在使用一个API,它接受来自名为#tags的输入字段的字符串数组。最好的方法是什么?它还应删除“标签”之间的任何逗号,如果没有标签,则为[]。
输入:tag1,tag2,tag3 成为:[“tag1”,“tag2”,“tag3”]
HTML
<input id="tags" type="text" placeholder="tags" name="" value="">
我当前获取标记值的方式:
createPost('canvasID',{tags:$('#tags').val()});
答案 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();
}
或内联,使用正则表达式:
var tags = $('#tags').val().split( /,\s*/ );
可以找到文档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