Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Zrozumieć obiekt RegExp w JavaScript

Matrix Cię wciągnie...

Wyrażenia regularne, znane również jako "regex" lub "regexp", to potężne narzędzie, używane w operacjach dopasowywania i zamiany wzorca. Powszechnie używane we wszystkich narzędziach z rodziny *NIX, np. edytorze vi, językach skryptowych, np. Perl czy PHP oraz w programach shellowych jak awk czy sed.Wyrażenia regularne pozwalają Ci budować wzorce używając zestawu specjalnych znaków. Następnie, wzorce te mogą być porównywane z tekstem, danymi wprowadzonymi do aplikacji z zewnątrz, np. z formularza na stronie www. Dzięki temu, jeśli porównanie wzorca wypadnie pomyślnie, odpowiedni fragment kodu zostanie wykonany i zostaną podjęte wyznaczone akcje.Przykładowym wykorzystaniem operacji porównania wzorca jest sytuacja, gdy musimy zweryfikować prawdziwość adresu email, który użytkownik wprowadził w formularzu np. rejestracji. Formularz może być wysłany, jeśli adres jest prawdziwy, a przynajmniej zgodny ze standardami zapisu. Jeśli nie, należy wyświetlić odpowiedni komunikat, prosząc o ponowne wprowadzenie tego adresu. Wyrażenia regularne grają ważną rolę podczas procesu decyzyjnego - nie tylko, jeśli chodzi o adres email oczywiście. Są użyteczne we wszystkich sytuacjach wymagających przeszukiwania i zamiany odpowiednich fragmentów tekstu.Wyrażenie regularne zwykle wygląda tak:

/matrix/

Cała robota tutaj polega na tym, że wzorzec "matrix" jest szukany w tekście, do którego został zastosowany.

A może coś bardziej skomplikowanego? Spróbuj więc tego:

/mat+/

Ten wzorzec pasuje do słów "mat" oraz "mattt", ale nie do "mama". Dlaczego? Znak "+" oznacza, że znak go poprzedzający występuje co najmniej raz. Tak więc w powyższym przykładzie wzorzec pasuje do słowa "ma", po którym znajduje się jedna lub więcej liter "t".

Podobnym do metaznaku "+" (bo tak brzmi oficjalna nazwa) mamy znaki "*" i "?". Gwiazdka służy do dopasowywania znaków poprzedzanych, z tym że znaki te nie muszą wystąpić (innymi słowy: wystąpić zero lub więcej razy). A znak zapytania zastępuje we wzorcu poprzedni znak dokładnie zero lub jeden raz.

/eg*/

ten wzorzec pasuje do "easy", "egocentric" oraz "egg", gdy

/Wil?/

będzie zgodny z "Winnie", "Wimpy" "Wilson" i "William", ale nie "Wendy" czy "Wolf". Wydaje się, że tworzenie wzorca za pomocą metaznaków nie jest zbyt precyzyjne. Dlatego możesz określić zasięg i liczbę zastępowanych znaków w inny sposób - za pomocą klamerek. Dla przykładu:

/jim{2,6}/

będzie pasować do "jimmy" i "jimmmmmy!", ale nie do "jim". Liczby w klamerkach określają odpowiednio minimalną i maksymalną ilość pasujących znaków. Możesz nie podawać górnej granicy, wtedy takowa nie występuje.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (1)
zamiana nietypowych znaków
Niedziela 01 Kwiecień 2007 11:46:19 am - Fixer <piskomd_at_poczta.onet.pl>

a jak zamienić w tekście zestaw znaków typu :) lub :/ na <img src"".....?

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System