WebHU - Programozási kérdések és válaszok

Regex üres karakterlánchoz vagy szóközhöz

Megpróbálom észlelni, hogy a felhasználó szóközt ír-e be egy szövegdobozba:

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

A if($("#siren").val().match(regex)) állítólag megegyezik a szóköz karakterláncával, de úgy tűnik, hogy nem működik, mit csinálok rosszul?

Köszönöm a segítségeteket

01.10.2013

  • Amikor azt mondod, hogy nem működik, tudnál pontosabban? Vannak olyan példák, amelyek sikertelennek bizonyulnak, és amelyeket megoszthat? 01.10.2013

Válaszok:


1

A \ (fordított perjel) a .match hívásban nincs megfelelően eltávolítva. Könnyebb lenne azonban regex literált használni. Bármelyik működni fog:

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

Vegye figyelembe azt is, hogy a + legalább egy szóközt igényel. Használhatja a *.

01.10.2013
  • A var regex = ^\\s+$-t használom; úgy működik, mint egy varázslat, nagyon köszönöm mindannyiótoknak 02.10.2013

  • 2

    Ha a szóköz mellett üres karakterláncot keres, a + helyett a *-ot használja

    var regex = /^\s*$/ ;
                    ^
    
    01.10.2013

    3

    Ha jQuery-t használ, akkor .trim().

    if ($("#siren").val().trim() == "") {
      // it's empty
    }
    
    01.10.2013
  • Ha csak a JavaScript 1.8-as böngészőket kell támogatnia, a String.trim 01.10.2013
  • @ExplosionPills Biztos vagyok benne, hogy a jQuery belsőleg csinálja ezt, és az OP már használja a jQuery-t. 01.10.2013
  • @Overcode hol látod az egyszerűséget? A trim() is reguláris kifejezést használ, bonyolultabb, mint a /^\s*$/ 01.10.2013
  • IMHO, ez egyértelműbben mutatja a kód szándékát, mint a regex. A foo.trim() == '' kifejezés azt jelenti, hogy ez a karakterlánc üres? A foo.match(/^\s*$/) kimondása azt jelenti, hogy a foo karakterlánc egyezik a regex által meghatározott állapotgéppel?. Igen, a reguláris kifejezés egyszerű, de még mindig kevésbé egyértelmű. Az sem garantált, hogy a trim regex-en keresztül lesz definiálva, sok JS motorban van beépítve. 01.10.2013
  • @yan pont a natív díszítéssel kapcsolatban. Ami az államgép részt illeti, túlzásba viszed :-) 01.10.2013
  • Bár a var regex = new RegExp(REGEX.blank); return regex.test(val); ugyanezt teszi, de nagyon szeretem, ahogyan kihasználod a javascript API-t regex használata nélkül. +1 az egyszerűség kedvéért 02.11.2016
  • Ez a válasz nem a jQuery trimmét használja! Natív karakterlánc-levágást használ, mert a val() egy karakterláncot ad vissza (általában, ami a következő ponthoz visz.) A $("#siren").val() visszaadja a undefined értéket, ha a #siren szelektorhoz egyetlen elem sem illeszkedik, és akkor természetesen hibaüzenet jelenik meg, amikor megpróbálja az trim metódus meghívásához undefined. A jQuery trim metódusának használatához a következőt kell írnia: $.trim($("#siren").val()); 13.01.2017

  • 4

    Ha valakit csak a karakterlánc elején és végén lévő szóköz érdekel (de nem a közepén), akkor egy másik lehetőség a String.trim() használata:

    "    your string contents  ".trim();
    
    // => "your string contents"
    
    18.04.2019

    5

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

    Ez az én megoldásom

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

    6

    Hasonló problémám volt, szóközöket kerestem egy karakterláncban, megoldás:

    • 1 hely kereséséhez:

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

      példa: "felhasználó vezetékneve"

    • Több hely kereséséhez:

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

      példa: "felhasználó vezetékneve"

    30.08.2017
    Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..