Удалить последнюю запятую из строки
Используя 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;
}
Ответы
Ответ 1
После этого будет удаляться последняя запятая и любые пробелы:
str = str.replace(/,\s*$/, "");
Он использует регулярное выражение:
-
/
отметьте начало и конец регулярного выражения
-
,
соответствует запятой
-
\s
означает пробельные символы (пробел, табуляция и т.д.) и *
означает 0 или более
-
$
в конце означает конец строки
Ответ 2
Вы можете удалить последнюю запятую из строки с помощью метода slice(), найдите следующий пример:
var strVal = $.trim($('.txtValue').val());
var lastChar = strVal.slice(-1);
if (lastChar == ',') {
strVal = strVal.slice(0, -1);
}
Вот пример
function myFunction() {
var strVal = $.trim($('.txtValue').text());
var lastChar = strVal.slice(-1);
if (lastChar == ',') { // check last character is string
strVal = strVal.slice(0, -1); // trim last character
$("#demo").text(strVal);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="txtValue">Striing with Commma,</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
Ответ 3
function removeLastComma(str) {
return str.replace(/,(\s+)?$/, '');
}
Ответ 4
длинный снимок здесь
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);
Ответ 5
Проблема в том, что вы удаляете последнюю запятую в строке, а не запятую, если это последняя вещь в строке. Таким образом, вы должны положить if, если проверить, если последний char is ',' и изменить его, если он есть.
РЕДАКТИРОВАТЬ: Неужели это запутывает?
'Это случайная строка'
Ваш код находит последнюю запятую из строки и сохраняет только "Это", потому что последняя запятая после 'This' не находится в конце строки.
Ответ 6
Вы можете удалить последнюю запятую:
var sentence = "I got,. commas, here,";
sentence = sentence.replace(/(.+),$/, '$1');
console.log(sentence);
Ответ 7
Удалить последнюю запятую. Рабочий пример
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
Вы можете удалить последнюю запятую в строке, используя только одну строку в Java
String commaFilterString = yourString.substring(0,yourString.length()-1);
Ответ 9
Поздний ответ, но, вероятно, должен помочь кому-то.
Для удаления любого последнего символа из строки.
var str = "one, two, three,";
var str2 = str.substring(0, str.length - 1);
alert(str);
alert(str2);
Ответ 10
Ответ с большим количеством голосов удаляет не только заключительную запятую, но и любые последующие пробелы. Но удаление этих следующих пробелов не было частью первоначальной проблемы. Так:
let str = 'abc,def,ghi, ';
let str2 = str.replace(/,(?=\s*$)/, '');
alert("'" + str2 + "'");
'abc,def,ghi '
https://jsfiddle.net/dc8moa3k/