Considere um cenário não DOM, no qual você deseja remover todos os caracteres não numéricos de uma sequência usando JavaScript / ECMAScript. Quaisquer caracteres que estejam dentro do alcance 0 - 9
devem ser mantidos.
var myString = 'abc123.8<blah>';
//desired output is 1238
Como você conseguiria isso em JavaScript simples? Lembre-se de que este é um cenário que não é do DOM; portanto, o jQuery e outras soluções que envolvem eventos do navegador e do pressionamento de tecla não são adequados.
javascript
string
p.campbell
fonte
fonte
\D
?replace
trabalho com esta sintaxe exata em todos os navegadores? parece que me lembro de ter conseguido umaobject has no method 'replace'
versão mais antiga do IE ao usá-la com o texto que peguei no jQuery ... ou algo assim.Se você precisar deixar o ponto para números flutuantes, use este
fonte
"aaa 2.9px of bbb.".replace(/[^\d.-]/g, '')
→2.9.
Deve remover qualquer String que possa envolver um número ..-
(negativo) caso o número :)parseFloat("-1234.5.50 €".replace(/[^\d.-]/g, ''))
Use uma expressão regular, se sua implementação de script os suportar. Algo como:
fonte
Você pode usar um RegExp para substituir todos os caracteres que não são dígitos:
fonte
Algo ao longo das linhas de:
fonte
yourString = yourString.replace ( /[^0-9.]/g, '' );
tentar
Mostrar snippet de código
fonte
Em Angular / Ionic / VueJS - acabei de criar um método simples de:
Uso na exibição:
fonte
Infelizmente, nenhuma das respostas acima funcionou para mim.
Eu estava olhando para converter números de moeda de seqüências de caracteres como
$123,232,122.11
(1232332122.11) ouUSD 123,122.892
(123122.892) ou qualquer moeda como₹ 98,79,112.50
(9879112.5) para me dar uma saída de número, incluindo o ponteiro decimal.Tive que fazer meu próprio regex que se parece com isso:
fonte
Função curta para remover todos os caracteres não numéricos, mas manter o decimal (e retornar o número):
fonte
estamos em 2017 agora você também pode usar o ES2016
ou
O resultado é
fonte