2016-08-04 4 views
0

die Aufgabe sieht einfach aus. Ich muss nicht-numerische Zeichen aus einem Eingabefeld vom Typ "Nummer" auf Keyup in Firefox entfernen.Firefox Javascript: Entfernen Sie nicht-numerische Zeichen von der Eingabe des Typs "Nummer" - FF Problem

Der Code:

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

Leider sobald ein nicht numerisches Zeichen betritt das Feld, dessen gesamte Inhalt wird durch die leere Zeichenkette ersetzt.

Zum Beispiel:

234d = geleert> sollte 234

Solution (hier, weil die Frage geschlossen wurde) sein:

Dieses Beispiel funktioniert. Ich habe herausgefunden, dass es mit dem Feldtyp zu tun hat. Wenn die Eingabe im Feld vom Typ "Nummer" nicht numerische Zeichen enthält, zeigt Firefox die Eingabe an, speichert sie jedoch nicht im Eingabeobjekt. Sobald ich eine Texteingabe verwende, funktioniert alles einwandfrei. Scheint ein Firefox-Problem zu sein.

Ich denke, diese Frage ist nicht doppelt, weil es scheint, ein Firefox-Problem mit Eingabefeldern des Typs "Nummer" zu betrachten.

+1

'regex =/\ D + /;' ..... '/ [\\ D] +/'entspricht der Kombination von' \ s' und 'Ds' –

+0

' var regex =/\ D +/g' um alle nicht-numerischen Zeichen zu entfernen. '$ (this) .val (Funktion (i, val) {return val.replace (/ \ D +/g, '');});' – Tushar

+0

'/ [\\ D] + /;' stimmt mit '' \ überein '' s ​​und 'D's. Wenn Sie eine Konstruktorschreibweise verwenden, würde 'new RegExp (" [\\ D] + "," g ")' funktionieren, aber in einem Regex-Literal benötigen Sie nur ein '' '' '' mit einer Kurzzeichen-Klasse/special Figuren. –

Antwort

1

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

 
console.log(val);

0
var myString = '234d'; 

diese Zeile Versuchen:

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

Referenz: strip non-numeric characters from string

+0

Dieses Beispiel funktioniert. Ich habe herausgefunden, dass es mit dem Feldtyp zu tun hat. Wenn die Eingabe im Feld vom Typ "Nummer" nicht numerische Zeichen enthält, zeigt Firefox die Eingabe an, speichert sie jedoch nicht im Eingabeobjekt. Sobald ich eine Texteingabe verwende, funktioniert alles einwandfrei. Ich nehme an, es ist ein Firefox-Problem. –

Verwandte Themen