How can I trim the leading and trailing comma in javascript?
Solution 1:
because I believe everything can be solved with regex:
var str = ",liger, unicorn, snipe,"
var trim = str.replace(/(^,)|(,$)/g, "")
// trim now equals 'liger, unicorn, snipe'
Solution 2:
While cobbal's answer is the "best", in my opinion, I want to add one note: Depending on the formatting of your string and purpose of stripping leading and trailing commas, you may also want to watch out for whitespace.
var str = ',liger, unicorn, snipe,';
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
Of course, with this application, the value of using regex over basic string methods is more obvious.
Solution 3:
If you want to make sure you don't have any trailing commas or whitespace, you might want to use this regex.
var str = ' , , , foo, bar, ';
str = str.replace(/(^[,\s]+)|([,\s]+$)/g, '');
returns
"foo, bar"
Solution 4:
Try this, since not everything can be solved by REs and even some things that can, shouldn't be :-)
<script type="text/javascript">
var str = ",liger, unicorn, snipe,";
if (str.substr(0,1) == ",") {
str = str.substring(1);
}
var len = str.length;
if (str.substr(len-1,1) == ",") {
str = str.substring(0,len-1);
}
alert (str);
</script>
Solution 5:
In ECMAScript 5 and above, you can now do a one-liner
',liger, unicorn, snipe,'.split(',').map(e => e.trim()).filter(e => e).join(', ')