Удалить последнюю запятую из строки

Используя 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;
}
90 голосов | спросил AnaMaria 18 J000000Thursday13 2013, 13:58:42

6 ответов


0

Это удалит последнюю запятую и все пробелы после нее:

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

Использует регулярное выражение:

  • / отмечают начало и конец регулярного выражения

  • , соответствует запятой

  • \s означает пробельные символы (пробел, табуляция и т. д.) и * означает 0 или более

  • $ в конце означает конец строки

ответил Jon 18 J000000Thursday13 2013, 14:02:03
0
function removeLastComma(str) {
   return str.replace(/,(\s+)?$/, '');   
}
ответил Daniel Sloof 18 J000000Thursday13 2013, 14:03:59
0

вы можете удалить последнюю запятую из строки с помощью метода slice (), найдите ниже example :

var strVal = $.trim($('.txtValue').val());
var lastChar = strVal.slice(-1);
if (lastChar == ',') {
    strVal = strVal.slice(0, -1);
}
ответил e-techpulse 26 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 26 Sep 2015 13:37:48 +0300 2015, 13:37:48
0

длинный выстрел здесь

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);
ответил 18 J000000Thursday13 2013, 14:24:00
0

Проблема в том, что вы удаляете последнюю запятую в строке, а не запятую, если это последняя вещь в строке. Поэтому вы должны поставить if, чтобы проверить, является ли последний символ ',' и изменить его, если он есть.

РЕДАКТИРОВАТЬ: это действительно так запутанно?

'Это случайная строка'

Ваш код находит последнюю запятую в строке и сохраняет только «This», потому что последняя запятая находится после «This», а не в конце строки.

ответил Hristo Valkanov 18 J000000Thursday13 2013, 14:02:03
0

вы можете удалить последнюю запятую:

var sentence = "I got,. commas, here,";
sentence = sentence.replace(/(.+),$/, '$1');
console.log(sentence);
ответил Trai Hải Phòng 24 MonEurope/Moscow2018-12-24T13:35:18+03:00Europe/Moscow12bEurope/MoscowMon, 24 Dec 2018 13:35:18 +0300 2018, 13:35:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132