web-dev-qa-db-fra.com

Regex pour chaîne vide ou espace blanc

J'essaie de détecter si un utilisateur entre des espaces dans une zone de texte:

 var regex = "^\s+$" ; 
 if($("#siren").val().match(regex)) {
     echo($("#siren").val());
     error+=1;
    $("#siren").addClass("error");
    $(".div-error").append("- Champ Siren/Siret ne doit pas etre vide<br/>");
 }

if($("#siren").val().match(regex)) est supposé correspondre à la chaîne d'espacement, cependant, cela ne semble pas fonctionner, qu'est-ce que je fais mal?

Merci pour votre aide

17
dtjmsy

Le \ (barre oblique inverse) de l'appel .match n'est pas échappé correctement. Il serait cependant plus facile d'utiliser un littéral de regex. Soit travaillera:

var regex = "^\\s+$";
var regex = /^\s+$/;

Notez également que + nécessitera au moins un espace. Vous voudrez peut-être utiliser *.

23
Explosion Pills

Si vous utilisez jQuery, vous avez .trim().

if ($("#siren").val().trim() == "") {
  // it's empty
}
21
yan

Si vous recherchez une chaîne vide en plus des espaces, vous devez utiliser * plutôt que +

var regex = /^\s*$/ ;
                ^
19
asantaballa

http://jsfiddle.net/DqGB8/1/

C'est ma solution

var error=0;
var test = [" ", "   "];
 if(test[0].match(/^\s*$/g)) {
     $("#output").html("MATCH!");
     error+=1;
 } else {
     $("#output").html("no_match");
 }
2
JustGage

Avait un problème similaire, était à la recherche d'espaces blancs dans une chaîne, solution:

  • Pour rechercher 1 espace:

    var regex = /^.+\s.+$/ ;
    

    exemple: "nom d'utilisateur"

  • Pour rechercher plusieurs espaces:

    var regex = /^.+\s.+$/g ;
    

    exemple: "nom de famille de l'utilisateur"

0
Jose Paez

Remarque importante à propos des scripts et des espaces: les navigateurs qui analysent les espaces, les espaces, les tabulations et les sauts de ligne en espaces signifient qu’il s’agit réellement d’un espace. Les espaces blancs eux-mêmes sont \xA0 (caractère 160). C'est à dire. souvent, si vous écrivez PHP sur un mac et que, par magie, vous ne frappez pas uniquement l'espace, vous avez un caractère qui ressemble à un espace, mais qui n'en est pas un. Pour supprimer cela et faire disparaître l'erreur magique 500 qui commence soudainement, supprimez tous les \xA0 (Caractère 160) de votre script. (Lors de la recherche, dans TextWrangler/BBEdit, la case "Grep" dans la boîte de dialogue de recherche était cochée - elle devrait être similaire dans Coda, Eclipse, etc.). Cela prend du temps à comprendre. Même si le sujet ne correspond pas à 100%, il s'agit du premier résultat sur Google lorsque vous recherchez exactement ce problème. J'espère que ça aide quelqu'un.

0
Chris S.