Javascript Split Space Delimited String And Trim Extra Commas And Spaces
Solution 1:
You will need a regular expression in both cases. You could split and join the string:
str = str.split(/[\s,]+/).join();
This splits on and consumes any consecutive white spaces and commas. Similarly, you could just match and replace these characters:
str = str.replace(/[\s,]+/g, ',');
For the trailing comma, just append one
str = .... + ',';
If you have preceding and trailing white spaces, you should remove those first.
Reference:.split
, .replace
, Regular Expressions
Solution 2:
In ES6:
var temp = str.split(",").map((item)=>item.trim());
Solution 3:
In addition to Felix Kling's answer
If you have preceding and trailing white spaces, you should remove those first.
It's possible to add an "extension method" to a JavaScript String
by hooking into it's prototype. I've been using the following to trim preceding and trailing white-spaces, and thus far it's worked a treat:
// trims the leading and proceeding white-spaceString.prototype.trim = function()
{
returnthis.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
};
Solution 4:
I would keep it simple, and just match anything not allowed instead to join on:
str.split(/[^a-zA-Z-]+/g).filter(v=>v);
This matches all the gaps, no matter what non-allowed characters are in between. To get rid of the empty entry at the beginning and end, a simple filter for non-null values will do. See detailed explanation on regex101.
var str = ", ,, ford, tempo, with,,, sunroof,, ,";
var result = str.split(/[^a-zA-Z-]+/g).filter(v=>v).join(',');
console.info(result);
Solution 5:
let query = "split me by space and remove trailing spaces and store in an array ";
let words = query.trim().split(" ");
console.log(words)
Output : [ 'split', 'me', 'by', 'space','and','remove', 'trailing', 'spaces', 'and', 'store', 'in', 'an', 'array' ]
Post a Comment for "Javascript Split Space Delimited String And Trim Extra Commas And Spaces"