Eu tenho um campo de texto que precisa permanecer apenas texto ou decimal. Aqui está o código que estou usando atualmente para substituir tudo, exceto números e um ponto decimal. O problema é que não consigo descobrir uma regex que identifique todo o resto
document.getElementById(target).value = newVal.replace(/\D[^\.]/g, "");
O \ D funciona bem, mas eu tentei (?!.), (?!\.), [^.], [^\.]
e assim por diante ...
Alguma sugestão para uma expressão regular que se identifica positivamente com qualquer coisa, exceto um número ou um decimal?
Obrigado pela ajuda
javascript
regex
guildsbounty
fonte
fonte
Respostas:
Usa isto:
fonte
parseFloat("46554.4655465.54654.545345.5") = 46554.4655465
A remoção apenas da parte decimal pode ser feita da seguinte forma:
Isso converteria 13,6667 px em 13 px (deixando as unidades px intactas).
fonte
Experimente isto:
document.getElementById(target).value = newVal.replace(/^\d+(\.\d{0,2})?$/, "");
fonte
Confira no link Demonstração de Expressão Regular
use o reg exp abaixo
[az] + [^ 0-9 \ s.] + |. (?! \ d)
fonte