How to wrap comma separated values string in single quotes?

10,709

Solution 1

You can do it like below. Hope it helps.

var input = "label1, label2, label3, label4, label5";
var result = '\'' + input.split(',').join('\',\'') + '\'';

Solution 2

"label1, label2, label3, label4, label5".split(',').map(function(word){
    return "'" + word.trim() + "'";
}).join(',');

(ES6 edit)

"label1, label2, label3, label4, label5".split(',')
   .map(word => `'${word.trim()}'`)
   .join(',');

Solution 3

Maybe somthing like this:

var str = "label1, label2, label3, label4, label5";
var arr = str.split(",");

for (var i in arr) {
    if (arr.hasOwnProperty(i)) {
        arr[i] = "'"+arr[i]+"'";
    }
}

Solution 4

Split string with comma and space to make array and use join method to get array element separated by separator. i.e: separator as ',' and also add start and end quote because it is missing after joining elements.

var str = "label1, label2, label3, label4, label5";
var res = str.split(", ");
var data = "'" + res.join("','") + "'";
console.log(data);
Share:
10,709
geodeath
Author by

geodeath

Updated on June 13, 2022

Comments

  • geodeath
    geodeath almost 2 years

    I have the following example of a string:

    "label1, label2, label3, label4, label5"
    

    Now, because this will be used as an object initialising a jquery plugin, it needs to look like this:

    'label1','label2','label3','label4','label5'
    

    I already managed to split the string with split(","), turning it into an array, however i am not sure how i can wrap each of the array items with single quotes, at which stage, i will be able to join it back to a string for usage?

    Any ideas?

    solution can be js only or jquery.

  • Bill Criswell
    Bill Criswell over 8 years
    You missed a space after the ',' in your split call. Upvoted!
  • pawel
    pawel over 8 years
    I've added .trim() to get rid of the space, might as well have used .split(/,\s*/).
  • geodeath
    geodeath over 8 years
    All replies were great, but this is my preferred solutions, cheers!