Eu tenho uma string 12345.00
e gostaria que ela retornasse 12345.0
.
Eu olhei trim
, mas parece que está apenas aparando espaços em branco e slice
que não vejo como isso funcionaria. Alguma sugestão?
javascript
slice
trim
Phill Pafford
fonte
fonte
Math.round('0.5') === 1
;)Respostas:
Você pode usar a função de substring :
Esta é a resposta aceita, mas de acordo com as conversas abaixo, a sintaxe da fatia é muito mais clara:
fonte
str = str.substring(0, str.length -1);
slice
&substring
são todos iguais; excepto a que oslice()
aceita um índice negativo, em relação ao fim da cadeia, mas não osubstring
, ele geraout-of-bound
errosubstring
é 11% mais rápido queslice
. jsperf.com/js-slice-vs-substring-testVocê pode usar fatia ! Você só precisa ter certeza de que sabe usá-lo. # Positivos são relativos ao início, números negativos são relativos ao final.
fonte
substring
método também não poderia ser usado em seqüências dinâmicas? Usando o str.length para obter dinamicamente o comprimento?Você pode usar o método de substring dos objetos de sequência JavaScript:
Remove incondicionalmente os últimos quatro caracteres da string
s
.No entanto, se você deseja remover condicionalmente os quatro últimos caracteres, apenas se eles forem exatamente
_bar
:fonte
slice
é melhor aqui.s.slice(0, -4)
O método mais fácil é usar o
slice
método da string, que permite posições negativas (correspondentes a compensações do final da string):Se você precisar de algo mais geral para remover tudo após (e incluindo) o último sublinhado, faça o seguinte (desde que
s
seja garantido que contenha pelo menos um sublinhado):fonte
Para um número como o seu exemplo, eu recomendo fazer isso
substring
:Observe que, na verdade, isso arredondará o número, o que eu imagino ser desejado, mas talvez não:
fonte
Usando a função de fatia do JavaScript:
Isso pode ser usado para remover '_bar' no final de uma string, de qualquer tamanho.
fonte
Uma expressão regular é o que você está procurando:
fonte
Tente o seguinte:
fonte
E se:
fonte
Use regex:
fonte
fonte
fonte
Aqui está uma alternativa que eu acho que não vi nas outras respostas, apenas por diversão.
Não é tão legível ou simples como fatia ou substring, mas permite que você brinque com a corda usando alguns métodos de matriz, portanto vale a pena conhecer.
fonte
fonte
O caminho mais curto:
fonte
Se você deseja fazer arredondamentos genéricos de flutuadores, em vez de apenas aparar o último caractere:
EDIT: Parece que existe uma função interna para isso, como Paolo aponta. Essa solução é obviamente muito mais limpa que a minha. Use parseFloat seguido por toFixed
fonte
fonte
https://jsfiddle.net/invos/w3zeqv6v/
/programming/34817546/javascript-how-to-delete-last-two-characters-in-a-string
"11.01 °C".slice(0,-2).trim()
fonte
atuação
Hoje 2020.05.13 realizo testes de soluções escolhidas no Chrome v81.0, Safari v13.1 e Firefox v76.0 no MacOs High Sierra v10.13.6.
Conclusões
slice(0,-1)
(D) é a solução mais rápida ou mais rápida para seqüências curtas e longas e é recomendado como solução rápida entre navegadoressubstring
(C) esubstr
(E) são rápidasDetalhes
Realizo dois testes para as soluções A , B , C , D , E ( ext ), F , G (minha)
As soluções são apresentadas no snippet abaixo
Mostrar snippet de código
Aqui estão exemplos de resultados para o Chrome para cadeias curtas
fonte
Esteja ciente de que
String.prototype.{ split, slice, substr, substring }
opera em cadeias codificadas UTF-16Nenhuma das respostas anteriores reconhece o Unicode. As cadeias de caracteres são codificadas como UTF-16 na maioria dos mecanismos JavaScript modernos, mas os pontos de código Unicode mais altos requerem pares substitutos ; portanto, métodos de cadeia pré-existentes mais antigos operam em unidades de código UTF-16, e não em pontos de código Unicode.
Além disso, as respostas RegExp não correspondem a quebras de linha no final em sua forma atual:
Use o iterador de cadeia para iterar caracteres
O código compatível com Unicode utiliza o iterador da string; ver
Array.from
e...
espalhar .string[Symbol.iterator]
também pode ser usado (por exemplo, em vez destring
).Consulte também Como dividir a cadeia Unicode em caracteres em JavaScript .
Exemplos:
Use os sinalizadores
s
eu
RegExp
O sinalizador
dotAll
ous
faz.
coincidir os caracteres de quebra de linha, o sinalizadorunicode
ouu
habilita certos recursos relacionados ao Unicode.Exemplos:
Observe que alguns grafemas consistem em mais de um ponto de código, por exemplo,
🏳️🌈
que consiste na sequência🏳
(U + 1F3F3),VS16
(U + FE0F) ,ZWJ
(U + 200D) ,🌈
(U + 1F308). Aqui, aindaArray.from
vai dividir isso em quatro "caracteres". É possível fazer a correspondência desses itens com a propriedade Unicode .fonte
Nos casos em que você deseja remover algo próximo ao final de uma string (no caso de strings de tamanho variável), você pode combinar slice () e substr ().
Eu tinha uma string com marcação, construída dinamicamente, com uma lista de tags de âncora separadas por vírgula. A string era algo como:
Para remover a última vírgula, fiz o seguinte:
fonte
Tente o seguinte:
Você também pode tentar o exemplo de trabalho ao vivo em http://jsfiddle.net/informativejavascript/F7WTn/87/ .
fonte
Desculpe pela minha graphomany, mas a postagem foi marcada como 'jquery' anteriormente. Portanto, você não pode usar slice () dentro do jQuery porque o slice () é o método jQuery para operações com elementos DOM, não substrings ... Em outras palavras, responda @ Jon Erickson sugerir uma solução realmente perfeita.
No entanto, seu método funciona com a função jQuery, dentro de Javascript simples. É preciso dizer que, devido à última discussão nos comentários, que o jQuery é uma extensão muito mais renovável do JS do que o ECMAScript mais conhecido de seus pais.
Aqui também existem dois métodos:
como nosso:
string.substring(from,to)
como mais se o índice 'to' nulled retorna o restante da string. então:string.substring(from)
positivo ou negativo ...e alguns outros - substr () - que fornecem faixa de substring e 'length' podem ser positivos apenas:
string.substr(start,length)
Alguns mantenedores também sugerem que o último método
string.substr(start,length)
não funciona ou funciona com erro para o MSIE.fonte
String.prototype.slice
é um método nativoslice()
método jQuery para manipulação DOM: API jQuery: .slice () . E CERTO, isso PODE SER FIGURADO como uma herança polimórfica de JS Array.slice (), mas são dois métodos diferentes, e acho que precisamos diferenciá-lo. Portanto, é apenas uma aproximação a esse conhecimento..slice
uma variável que é uma string, ela fará exatamente o que o OP queria. Não importa se ele está "dentro do jQuery" e não há como "interferir" de maneira alguma, a menos que você o substituaString.prototype
pelo jQuery, o que, com certeza, impedirá o funcionamento de QUALQUER código javascript. Sua resposta apenas diz que outra resposta não é boa e o argumento que você fornece está incorreto..data
manipulação sofisticada e acabar com essa "string"), que, se você a chamarslice
, não faria o que você quer. Dito isto, esta não é realmente uma resposta útil.Use substring para obter tudo à esquerda de _bar. Mas primeiro você precisa obter o instr de _bar na string:
3 é esse começo e 7 é o comprimento.
fonte