【发布时间】:2009-03-19 07:20:43
【问题描述】:
我有一个如下所示的字符串。
,liger, unicorn, snipe,
如何在 javascript 中修剪前导和尾随逗号?
【问题讨论】:
标签: javascript
我有一个如下所示的字符串。
,liger, unicorn, snipe,
如何在 javascript 中修剪前导和尾随逗号?
【问题讨论】:
标签: javascript
因为我相信一切都可以用正则表达式解决:
var str = ",liger, unicorn, snipe,"
var trim = str.replace(/(^,)|(,$)/g, "")
// trim now equals 'liger, unicorn, snipe'
【讨论】:
虽然 cobbal 的答案是“最好的”,但在我看来,我想补充一点:根据字符串的格式以及去除前导和尾随逗号的目的,您可能还需要注意空格。
var str = ',liger, unicorn, snipe,';
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
当然,有了这个应用程序,使用正则表达式而不是基本字符串方法的价值就更加明显了。
【讨论】:
如果您想确保没有任何尾随逗号或空格,您可能需要使用此正则表达式。
var str = ' , , , foo, bar, ';
str = str.replace(/(^[,\s]+)|([,\s]+$)/g, '');
返回
"foo, bar"
【讨论】:
,,,liger, unicorn, snipe,,, -> liger, unicorn, snipe。
str.replace(/^[,\s]+|[,\s]+$/g, '').replace(/,[,\s]*,/g, ',');
试试这个,因为不是所有事情都可以通过 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>
【讨论】:
在 ECMAScript 5 及更高版本中,您现在可以使用单行代码
',liger, unicorn, snipe,'.split(',').map(e => e.trim()).filter(e => e).join(', ')
【讨论】: