178

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

12 に答える 12

489

これにより、最後のコンマとその後の空白が削除されます。

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

正規表現を使用します。

  • /正規表現の開始と終了をマークします

  • ,コンマに一致します

  • \s空白文字 (スペース、タブなど) を*意味し、0 以上を意味します

  • 末尾の$は文字列の終わりを意味します

于 2013-07-18T10:02:03.913 に答える
14
function removeLastComma(str) {
   return str.replace(/,(\s+)?$/, '');   
}
于 2013-07-18T10:03:59.937 に答える
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);
于 2013-07-18T10:24:00.217 に答える
1

最後のコンマを削除できます:

var sentence = "I got,. commas, here,";
sentence = sentence.replace(/(.+),$/, '$1');
console.log(sentence);
于 2018-12-24T10:35:18.850 に答える
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) に簡略化できます。

于 2020-03-06T14:23:42.137 に答える
0

問題は、文字列の最後のコンマではなく、文字列の最後のコンマを削除することです。そのため、最後の文字が ',' であるかどうかを確認する if を配置し、そうである場合は変更する必要があります。

編集:それは本当に混乱していますか?

「これは、ランダムな文字列です」

あなたのコードは、文字列から最後のコンマを見つけて、'This,' だけを格納します。最後のコンマは、文字列の最後ではなく、'This' の後にあるからです。

于 2013-07-18T10:02:03.883 に答える