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>
/*
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>