从string中删除最后一个逗号

使用JavaScript,我怎样才能删除最后一个逗号,但只有当逗号是最后一个字符或逗号后面只有空格? 这是我的代码。 我有一个工作小提琴 。 但它有一个错误。

var str = 'This, is a test.'; alert( removeLastComma(str) ); // should remain unchanged var str = 'This, is a test,'; alert( removeLastComma(str) ); // should remove the last comma var str = 'This is a test, '; alert( removeLastComma(str) ); // should remove the last comma function removeLastComma(strng){ var n=strng.lastIndexOf(","); var a=strng.substring(0,n) return a; } 

这将删除后面的最后一个逗号和任何空格:

 str = str.replace(/,\s*$/, ""); 

它使用正则expression式:

  • /标记正则expression式的开始和结束

  • 该匹配逗号

  • \s表示空格字符(空格,制表符等), *表示0或更多

  • 最后的$表示string的结尾

 function removeLastComma(str) { return str.replace(/,(\s+)?$/, ''); } 

这里远射

 var sentence="I got,. commas, here,"; var pattern=/,/g; var currentIndex; while (pattern.test(sentence)==true) { currentIndex=pattern.lastIndex; } if(currentIndex==sentence.trim().length) alert(sentence.substring(0,currentIndex-1)); else alert(sentence); 

您可以使用slice()方法从string中删除最后一个逗号,查找下面的示例 :

 var strVal = $.trim($('.txtValue').val()); var lastChar = strVal.slice(-1); if (lastChar == ',') { strVal = strVal.slice(0, -1); } 

问题是你删除了string中的最后一个逗号,而不是逗号,如果它是string中的最后一个字符。 所以你应该放一个if来检查最后一个字符是否是',',如果是的话就改一下。

编辑:这真的是令人困惑?

'这是一个随机串'

你的代码从string中find最后一个逗号,只存储“This”,因为最后一个逗号在“This”之后,而不是在string的末尾。