/ / JQuery Entfernen Sie Leerzeichen auf Blur - Javascript, Jquery, Regex, Validierung

JQuery Entfernen Sie White Space auf Blur - Javascript, Jquery, Regex, Validierung

Ich habe ein Formulareingabefeld für die Postleitzahl des Benutzerseingegeben werden, aber ich brauche den Wert, um keine Leerzeichen zu haben. Ich habe ein JQuery-Überprüfungsskript, das ich löschen möchte, aber ich habe mehrere Lösungen ausprobiert und keine davon funktioniert. Haben Sie irgendwelche Ideen, wie dies erreicht werden kann?

// Postcode Validation
$("#regpostcode").blur(function()
{
$(this).val($(this).val().replace(/^s+$/,"")); // THIS IS THE LINE I"M INTERESTED IN
var regpostcode=$(this).val();
if(regpostcode.length < 5){
$(".regPostcodeStatus").html("Please Enter Your Actual Postcode").removeClass("success").addClass("error");
regpostcodeok = 2;
}
else if(regpostcode.length > 7){
$(".regPostcodeStatus").html("Please Enter Your Actual Postcode").removeClass("success").addClass("error");
regpostcodeok = 2;
}
else{
$(".regPostcodeStatus").html("Thank You").removeClass("error").addClass("success");
regpostcodeok = 1;
}
});

Dies gibt "Bitte geben Sie Ihre tatsächliche Postleitzahl ein" zurück, da die Länge mit dem Leerzeichen mehr als 7 Zeichen beträgt.

Antworten:

1 für die Antwort № 1

Du scheinst zu wollen

$(this).val($(this).val().replace(/s/g,""));

Ich habe das entfernt ^ (Anfang der Zeichenfolge) und die $ (end of string) und ich fügte die g Flagge zu allen Räumen passen.


1 für die Antwort № 2

Ihr aktueller REGEX-Anker verankert sich am Anfang und Ende des Musters. Mit anderen Worten, es passt nur zu einer Zeichenfolge, die ausschließlich aus Leerzeichen besteht, sonst nichts.

Stattdessen brauchen Sie:

.replace(/s/g, "")

Das g bezieht sich auf den globalen Modifikator, sodass alle Leerzeichen in der Zeichenfolge entfernt werden, unabhängig davon, ob sie aufeinanderfolgen oder nicht.