我有一个如下所示的字符串。
,liger, unicorn, snipe,
如何在javascript中修剪前导和尾随逗号?
答案 0 :(得分:134)
因为我相信一切都可以用正则表达式来解决:
var str = ",liger, unicorn, snipe,"
var trim = str.replace(/(^,)|(,$)/g, "")
// trim now equals 'liger, unicorn, snipe'
答案 1 :(得分:35)
虽然cobbal的答案是“最好的”,但在我看来,我想添加一个注释:根据字符串的格式以及剥离前导和尾随逗号的目的,您可能还需要注意空格。 / p>
var str = ',liger, unicorn, snipe,';
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
当然,对于这个应用程序,使用正则表达式而非基本字符串方法的值更明显。
答案 2 :(得分:21)
如果你想确保没有任何尾随逗号或空格,你可能想要使用这个正则表达式。
var str = ' , , , foo, bar, ';
str = str.replace(/(^[,\s]+)|([,\s]+$)/g, '');
返回
"foo, bar"
答案 3 :(得分:16)
试试这个,因为不是所有都可以通过RE来解决,甚至可以解决一些不可能的事情: - )
<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>
答案 4 :(得分:4)
在ECMAScript 5及更高版本中,您现在可以做一排纸了
',liger, unicorn, snipe,'.split(',').map(e => e.trim()).filter(e => e).join(', ')