web-dev-qa-db-fra.com

Regex pour tout remplacer sauf des chiffres et un point décimal

J'ai un champ de texte qui doit rester que du texte ou décimal. Voici le code que j'utilise actuellement pour tout remplacer sauf les chiffres et un point décimal. La question est, je ne peux pas trouver une regex qui identifiera tout le reste

document.getElementById(target).value = newVal.replace(/\D[^\.]/g, "");

Le\D fonctionne bien, mais j’ai essayé (?!.), (?!\.), [^.], [^\.] et ainsi de suite ...

Avez-vous des suggestions pour une expression régulière qui s'identifie positivement avec n'importe quoi sauf un nombre ou une décimale?

Merci pour l'aide

84
guildsbounty

Utilisez ceci:

document.getElementById(target).value = newVal.replace(/[^0-9.]/g, "");
187
Chandu

Supprimer uniquement la partie décimale peut être effectué comme suit:

number.replace(/(\.\d+)+/,'');

Cela convertirait 13.6667px en 13px (en laissant les unités inchangées).

8
lubosdz

Essaye ça:

document.getElementById(target).value = newVal.replace(/^\d+(\.\d{0,2})?$/, "");

6
Beachhouse

Consultez le lien Demo Expression régulière

utilisez le reg exp ci-dessous 

[a-z] + [^ 0-9\s.] + |. (?!\d)

0
divya