web-dev-qa-db-fra.com

Regex pour supprimer les lettres, symboles sauf les chiffres

Comment supprimer des lettres, des symboles tels que ∞§¶•ªºº«≥≤÷ mais en laissant des chiffres simples de 0 à 9, je veux pouvoir ne pas autoriser les lettres ou certains symboles dans un champ de saisie, mais ne laisser que des chiffres.

Démo .

Si vous mettez des symboles comme ¡ € # ¢ ∞ § ¶ • ª ou bien, il ne le supprime toujours pas du champ de saisie. Comment supprimez-vous aussi les symboles? Le \w le modificateur ne fonctionne pas non plus.

51
MacMac

Vous pouvez utiliser \D ce qui signifie non chiffres .

var removedText = self.val().replace(/\D+/g, '');

jsFiddle .

Vous pouvez également utiliser l'entrée HTML5 number .

<input type="number" name="digit" />

jsFiddle .

84
alex

Utilisation /[^0-9.,]+/ si vous voulez des flotteurs.

23
techouse

Simple:

var removedText = self.val().replace(/[^0-9]+/, '');

^ - signifie NON

17
bezmax

Essayez l'expression rationnelle suivante:

var removedText = self.val().replace(/[^0-9]/, '');

Cela correspondra à chaque caractère qui est pas (^) dans l'intervalle 0-9.

Démo .

5
Darin Dimitrov

Si vous ne souhaitez conserver que des chiffres, utilisez /[^0-9]+/ au lieu de /[^a-zA-Z]+/

3
Aziz Shaikh