【问题标题】:How can I trim the leading and trailing comma in javascript?如何在javascript中修剪前导和尾随逗号?
【发布时间】:2009-03-19 07:20:43
【问题描述】:

我有一个如下所示的字符串。

,liger, unicorn, snipe,

如何在 javascript 中修剪前导和尾随逗号?

【问题讨论】:

标签: javascript


【解决方案1】:

因为我相信一切都可以用正则表达式解决:

var str = ",liger, unicorn, snipe,"
var trim = str.replace(/(^,)|(,$)/g, "")
// trim now equals 'liger, unicorn, snipe'

【讨论】:

  • @eyelidlessness 是否有与您的评论相关的笑话?我不在了
  • 对于@mohitmun(以及其他任何出现的人)。 '有些人在遇到问题时会想'我知道,我会使用正则表达式'。现在他们有两个问题。更多信息:blog.codinghorror.com/…
【解决方案2】:

虽然 cobbal 的答案是“最好的”,但在我看来,我想补充一点:根据字符串的格式以及去除前导和尾随逗号的目的,您可能还需要注意空格。

var str = ',liger, unicorn, snipe,';
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');

当然,有了这个应用程序,使用正则表达式而不是基本字符串方法的价值就更加明显了。

【讨论】:

  • 添加空格对我来说是关键。
  • 如果有人也对修剪空间感兴趣,最好使用下面 herostwist 的答案,它会更好。
【解决方案3】:

如果您想确保没有任何尾随逗号或空格,您可能需要使用此正则表达式。

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, ',');
  • 是的 @cyonder - https://jsfiddle.net/hws45zpd/
  • 嗯,你已经移动了@cyonder 的球门柱,问题是“我怎样才能修剪前导和尾随逗号”。为了使您的评论有效,您必须发明新问题。
【解决方案4】:

试试这个,因为不是所有事情都可以通过 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> 

【讨论】:

  • 不要问 RE 能为你做什么,而要问你能为 RE 做什么! :)
【解决方案5】:

在 ECMAScript 5 及更高版本中,您现在可以使用单行代码

',liger, unicorn, snipe,'.split(',').map(e => e.trim()).filter(e => e).join(', ')

【讨论】:

    猜你喜欢
    • 2020-06-09
    • 2011-10-06
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多