2016-08-04 3 views
0

la tâche semble simple. Je dois supprimer les caractères non numériques d'un champ de saisie de type "nombre" sur le clavier dans firefox.Firefox Javascript: Supprimer les caractères non numériques de l'entrée de type "numéro" - Numéro FF

Le code:

$("#field").on("keyup", function() { 
regex = /[\\D]+/; 
$(this).val($(this).val().replace(regex, '')); 
}); 

Malheureusement dès qu'un caractère non numérique entre dans le champ, tout son contenu sera remplacé par la chaîne vide.

Par exemple:

234d = vidé> doit être 234

Solution (ici parce que la question a été fermée):

Cet exemple fonctionne. J'ai découvert que cela a à voir avec le type de champ. Si l'entrée dans le champ de type "number" contient des caractères non numériques, firefox affiche l'entrée mais ne la stocke pas dans l'objet d'entrée. Dès que j'utilise une entrée de texte, tout fonctionne correctement. Semble être un problème de Firefox.

Je pense que cette question n'est pas en double car elle semble concerner un problème de Firefox avec des champs de saisie de type "nombre".

+1

'regex =/\ D + /;' '...../[\\ D] +/'correspond à la combinaison de' \ s' et 'Ds' –

+0

' var regex =/\ D +/g' pour supprimer tous les caractères non numériques. '$ (this) .val (fonction (i, val) {return val.replace (/ \ D +/g, '');});' – Tushar

+0

'/ [\\ D] + /;' correspond '' \ '' s ​​et 'D's. Si vous utilisez une notation constructeur, 'new RegExp (" [\\ D] + "," g ")' fonctionnerait, mais dans un littéral regex, vous n'avez besoin que d'un '' \ '' avec une classe de caractères raccourcis/spécial personnages. –

Répondre

1

var val = '234d'.replace(/[^0-9]/g, ''); 
 

 
console.log(val);

0
var myString = '234d'; 

Essayez cette ligne:

myString = myString.replace(/\D/g,''); 

Référence: strip non-numeric characters from string

+0

Cet exemple fonctionne. J'ai découvert que cela a à voir avec le type de champ. Si l'entrée dans le champ de type "number" contient des caractères non numériques, firefox affiche l'entrée mais ne la stocke pas dans l'objet d'entrée. Dès que j'utilise une entrée de texte, tout fonctionne correctement. Donc je suppose que c'est un problème de firefox. –