Usando JavaScript, como posso remover a última vírgula, mas apenas se a vírgula for o último caractere ou se houver apenas espaço em branco após a vírgula? Este é o meu código. Eu tenho um violino de trabalho . Mas tem um bug.
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;
}
javascript
Ana Maria
fonte
fonte
Respostas:
Isso removerá a última vírgula e qualquer espaço em branco depois dela:
Ele usa uma expressão regular:
A
/
marca do início e do fim da expressão regularA
,
corresponde a vírgulaOs
\s
caracteres de espaço em branco médio (espaço, tabulação etc.) e o*
meio 0 ou maisO
$
no final significa o fim da stringfonte
/
.The / mark the beginning and end of the regular expression
.você pode remover a última vírgula de uma string usando o método slice (), encontre o exemplo abaixo :
Aqui está um exemplo
fonte
fonte
tiro longo aqui
fonte
A resposta muito votada remove não apenas a vírgula final, mas também os espaços a seguir. Mas remover os seguintes espaços não era o que fazia parte do problema original. Assim:
https://jsfiddle.net/dc8moa3k/
fonte
O problema é que você remove a última vírgula da sequência, não a vírgula se for a última coisa na sequência. Portanto, você deve colocar um if para verificar se o último caractere é ',' e alterá-lo, se for.
EDIT: É realmente tão confuso?
'Isso é uma string aleatória'
Seu código localiza a última vírgula da string e armazena apenas 'This', porque a última vírgula é depois de 'This' e não no final da string.
fonte
você pode remover a última vírgula:
fonte
Remova a última vírgula. Exemplo de trabalho
fonte
Primeiro, deve-se verificar se o último caractere é uma vírgula. Se existir, remova-o.
NOTA str.indexOf (',', this.length - ','. Length) pode ser simplificado para str.indexOf (',', this.length - 1)
fonte