2013-09-02 5 views
0

J'ai un champ de saisie de formulaire pour les codes postaux de l'utilisateur à entrer, mais j'ai besoin de la valeur pour n'avoir aucun espace blanc. J'ai un script de validation JQuery que je veux supprimer l'espace blanc sur le flou mais j'ai essayé plusieurs solutions et aucune d'elles ne fonctionne. Des idées comment cela peut-il être réalisé? Voici la validation que je utilise:JQuery Supprimer l'espace blanc sur le flou

// 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; 
} 
}); 

Cette retourne « S'il vous plaît Entrez votre code postal réelle » comme évidemment la longueur de l'espace est de plus de 7 caractères.

Répondre

1

Vous semblez vouloir

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

J'ai enlevé le ^ (début de la chaîne) et la $ (fin de chaîne) et j'ai ajouté le g flag pour correspondre à tous les espaces.

1

Vos ancrages REGEX actuels au début et à la fin du motif. En d'autres termes, il ne correspondra qu'à une chaîne formée entièrement de caractères spatiaux, rien d'autre.

Au lieu de cela, vous avez besoin:

.replace(/\s/g, "") 

Le g se réfère au modificateur global, il va supprimer tous les espaces dans la chaîne, qu'ils soient consécutifs ou non.