it-swarm.com.de

Regex für leere Zeichenfolge oder Leerzeichen

Ich versuche zu ermitteln, ob ein Benutzer Leerzeichen in ein Textfeld eingibt:

 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)) soll Whitespace-Zeichenfolge entsprechen, scheint jedoch nicht zu funktionieren.

Danke für eure Hilfe

17
dtjmsy

Der \ (umgekehrter Schrägstrich) im .match-Aufruf wird nicht ordnungsgemäß mit Escapezeichen versehen. Es wäre jedoch einfacher, ein Regex-Literal zu verwenden. Entweder wird funktionieren:

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

Beachten Sie auch, dass + mindestens ein Leerzeichen benötigt. Möglicherweise möchten Sie * verwenden.

23
Explosion Pills

Wenn Sie jQuery verwenden, haben Sie .trim().

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

Wenn Sie zusätzlich zu Whitespace nach einem leeren String suchen, müssen Sie * anstelle von + verwenden

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

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

Das ist meine Lösung

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

Wenn man sich nur um Leerzeichen am Anfang und Ende des Strings kümmert (aber nicht in der Mitte), kann man auch String.trim () verwenden:

"    your string contents  ".trim();

// => "your string contents"
0
marcelocra

Hatte ein ähnliches Problem, suchte nach Leerzeichen in einer Zeichenfolge, Lösung:

  • So suchen Sie nach einem Leerzeichen:

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

    beispiel: "Benutzer Nachname"

  • So suchen Sie nach mehreren Leerzeichen:

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

    beispiel: "Nachname des Benutzers"

0
Jose Paez

Ein wichtiger Hinweis zum Thema Scripting und Whitespaces: Browser, die Leerzeichen, Whitespaces, Tabs und Zeilenumbrüche in Leerzeichen analysieren, bedeuten, dass sie tatsächlich ein Whitespace sind. Whitespaces selbst sind \xA0 (Char 160). Das heißt Wenn Sie PHP -Dateien auf einen Mac schreiben und nicht auf magische Weise nicht nur Leerzeichen berühren, haben Sie ein Zeichen, das wie ein Leerzeichen aussieht, aber nicht in einem. Entfernen Sie alle \xA0 (Char 160) 's aus Ihrem Skript, um das zu entfernen und den plötzlich auftretenden magischen Fehler 500 zum Verschwinden zu bringen. (Bei der Suche in TextWrangler/BBEdit haben Sie die Checkbox "Grep" im Suchdialogfeld gedrückt - sollte in Coda, Eclipse usw. ähnlich sein). Es dauert einige Zeit, um herauszufinden. Auch wenn es nicht zu 100% mit dem Thema übereinstimmt, ist es das erste Ergebnis bei Google, wenn Sie genau nach diesem Problem suchen. Hoffe es hilft jemandem.

0
Chris S.