从字符串中删除最后一个逗号

时间:2013-07-18 09:58:42

标签: javascript

使用JavaScript,如何删除最后一个逗号,但仅当逗号是最后一个字符或逗号后面只有空格时?这是我的代码。 我找到了工作fiddle。但它有一个错误。

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;
}

13 个答案:

答案 0 :(得分:310)

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

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

它使用正则表达式:

  • /标记正则表达式的开头和结尾

  • ,与逗号匹配

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

  • 结尾处的$表示字符串的结尾

答案 1 :(得分:8)

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

答案 2 :(得分:6)

你可以使用slice()方法从字符串中删除最后一个逗号,找到下面的example

var

答案 3 :(得分:3)

远射到这里

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);

答案 4 :(得分:1)

问题是你删除字符串中的最后一个逗号,而不是逗号,如果它是字符串中的最后一个。所以你应该设置一个if来检查最后一个char是否为','并且如果是,则更改它。

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

'这是一个随机字符串'

您的代码查找字符串中的最后一个逗号并仅存储“This”,因为,最后一个逗号位于字符串末尾的“This”之后。

答案 5 :(得分:1)

首先,应该检查最后一个字符是否为逗号。 如果存在,请将其删除。

if (str.indexOf(',', this.length - ','.length) !== -1) {
    str = str.substring(0, str.length - 1);
}

注意 str.indexOf(',',this.length-','。length)可以简化为str.indexOf(',',this.length-1)

答案 6 :(得分:0)

您可以删除最后一个逗号:

var sentence = "I got,. commas, here,";
sentence = sentence.replace(/(.+),$/, '$1');
console.log(sentence);

答案 7 :(得分:0)

删除最后一个逗号。工作示例

function truncateText() {
  var str= document.getElementById('input').value;
  str = str.replace(/,\s*$/, "");
  console.log(str);
}
<input id="input" value="address line one,"/>
<button onclick="truncateText()">Truncate</button>

答案 8 :(得分:0)

您只能使用Java

中的一行删除字符串中的最后一个逗号。
String commaFilterString = yourString.substring(0,yourString.length()-1);

答案 9 :(得分:0)

答案较晚,但可能应该会对某人有所帮助。

  

用于删除字符串中的最后一个字符。

var str = "one, two, three,";
var str2 = str.substring(0, str.length - 1);
alert(str);
alert(str2);

答案 10 :(得分:0)

被高度赞成的答案不仅删除了最后一个逗号,还删除了后面的所有空格。但是,删除以下空格并不是原始问题的一部分。所以:

let str = 'abc,def,ghi, ';
let str2 = str.replace(/,(?=\s*$)/, '');
alert("'" + str2 + "'");
'abc,def,ghi '

https://jsfiddle.net/dc8moa3k/

答案 11 :(得分:0)

以防它有用或更好:

def root
  return nil if application == nil
  
  application.config.root
end

它将替换字符串的以下所有组合结尾:

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

答案 12 :(得分:0)

有或没有正则表达式。

我建议两个进程,也考虑删除空间。今天我遇到了这个问题,我通过编写以下代码解决了这个问题。

我希望这段代码能帮助其他人。

//With the help of Regex
var str = "        I am in Pakistan, I am in India, I am in Japan,     ";
var newstr = str.replace(/[, ]+$/, "").trim();
console.log(newstr);


//Without Regex
function removeSpaceAndLastComa(str) {
  var newstr = str.trim();
  var tabId = newstr.split(",");
  strAry = [];
  tabId.forEach(function(i, e) {
    if (i != "") {
      strAry.push(i);
    }
  })
  console.log(strAry.join(","));
}

removeSpaceAndLastComa(str);