Powrót

Wyrażenia regularne

Wyrażenia regularne to wzorce opisujące łańcuch symboli. Są wykorzystywane do weryfikowania czy ciągi wprowadzanych znaków (np. do formularza) są zgodne z wymaganymi wzorcami.

            
        <script>
        /*
        W Javascript do tworzenia wzorców służy obiekt RegExp(wzorzec, flaga).
        Możemy go utworzyć na dwa sposoby:

        */

        var nowe_wyr = new RegExp('^pa');

        //lub

        var nowe_wyr2 = /^pa/;


        /*

        Symbole wzorca - znaki używane do zdefiniowania wzorca:

         ^ początek wzorca ^pa - pan, pani

         $ koniec wzorca as$ - las, czas,

         . dowolny pojedyńczy znak .an.a - banda, Wanda

         [...] dowolny z wymienionych znaków [a-z][b-t]naln[ey] - finalny, totalne

         [^...] dowolny z niemymienionych znaków kro[^st] - krowa, kroki

         | jeden z ciągów rozdzielonych znakiem: pierwszy | 1

         {3} dokładnie trzy poprzedzające znaki lub elementy: [0-9]{3} - 243,122

         {3, } przynajmiej trzy poprzedzające znaki lub elementy: [a-z]{3, } - abc, asbd,

         {2,5} od dwóch do pięciu  poprzedzających znaków lub elementów: [a-m]{2,4} - mama, bal,

         \. znak kropki [0-9]{3}\.[0-9]{2} - 421.11 , 888.23

        symbole flagi
        i  - nie będzie uwzgledniana wielkość liter
        g  - zwracane są wszystkie pasujące fragmenty

        klasy znaków
         \s - znak spacji, tabulacji lub nowego wiersza
         \S - znak NIE jest spacja, znakiem tabulacji lub nowego wiersza
         \w - każdy znak, który jest literą, cyfrą, lub znakiem _
         \W - każdy znak, który NIE jest literą, cyfrą, ani znakiem _
         \d - każdy znak który jest cyfrą
         \D = każdy znak który NIE jest cyfrą


         */
               
        </script>

                

               

            
 
        

Przykład użycia wyrażeń regularnych:

                

                    /*
                    Najpierw tworzymy formularz, do którego będziemy wpisywać tekst do sprawdzenia 
                    wzorcem z wyrażeniami regularnymi

                    */

                    <form  name="f1">

                        <input type="text" name="text"> <br>
                        <input type="button" value="sprawdź" onclick="sprawdz()" >
                    
                    </form>
                    <div id="odp"></div>

                    <script>


                    function sprawdz(){
                        //uchwyt do pola input w formularzu - odczytanie wartości z pola 
                        var text = document.forms.f1.text.value;

                        //uchwyt do elementu, gdzie chcemy wypisać informację zwrotną
                        var odp = document.querySelector("#odp");
            
                        var wzor = /^[0-9]{2}-[0-9]{3}$/; //wzorzec kodu pocztowego np. 44-100
            
                        //do sprawdzenia wzorca uzywamy metody test()
            
                        var spr = wzor.test(text); //metoda test() zwraca dwie wartości true/false
            
                        if(spr==true){
                            //Wczytanie informacji do znacznika div
                           odp.innerHTML = "Podany ciąg znaków jest prawidłowy"; 
                        }else{
                            odp.innerHTML = "Podany ciąg znaków jest nieprawidłowy"; 
                        }
            
                        
            
                    }


                    /*
                    przykładowe wzorce:
        
                    imie lub nazwsiko /^[A-Za-z]{2,}$/
        
                    imie i nazwisko /^[A-Za-z]{2,}\s+[A-Za-z]{2,}$/
                    
                    numer tel. kom. /^[0-9]{9}$/;
        
                    wzorzec adresu email /^[0-9a-zA-Z_.-]+@[0-9a-zA-Z.-]+\.[a-zA-Z]{2,3}$/;
        
                    kod pocztowy /^[0-9]{2}-[0-9]{3}$/
        
                    Adres IP 
                    /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/
        
        
        
                    */

                    </script>