Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Wyrażenia reguralne
Forum PHP.pl > Forum > Przedszkole
Misiur66
Witam! Tym razem chciałem wykorzystać wyrażenia regularne do walidacji formularza. Przeczytałem pierwsze 10 wyników z google na ten temat. I niestety mam niemały mentlik w głowie... Żaden "kurs" nie był przejrzysty i w końcu nie wiem czy pisze się:

Kod
var regular = new RegExp("/[^ABC]/", "/\\s/");
czy
var regular = new RegExp/[^ABC]/, /\\s/;
a może
var regular = /[^ABC]/, /\\s/;
i przy zmiennej
var regular = new RegExp("/[^ABC]/", "'+zmienna+'");


Nie wiem... Aptana nie pokazuje błędów, ale nie mam zielonego pojęcia jak to "rozkminić". Ma ktoś adres do jakiegoś przejrzystego kursu, albo czy ktoś mi wytłumaczy chociaż w małym stopniu jak zrobić, aby dało się wyszukać białe znaki albo puste pole w dowolnym stringu. Wielkie dzięki, pozdrawiam.
cbagov
Skorzystaj z .match()

http://www.devshed.com/c/a/JavaScript/Unde...egExp-Object/3/
Misiur66
Kod
function sprawdz_komentarz(id){
    var nick = document.forms['formularz_komentarz_'+id].elements['komentarz_nick_'+id].value;
    var tresc = document.forms['formularz_komentarz_'+id].elements['komentarz_tresc_'+id].value;
    var regularny = /.+/;
    var nick_match = nick.match(regularny);
    if(nick_match == false){
        alert('Niepuste pole');
        return true;
    }
    else{
        alert('Pole jest puste...');
        return false;
    }
}


Tam wykonuje się funkcja o argumencie id (u mnie jest duża machina przerzucania argumentów :-)), i zwraca zawsze alert 'Pole jest puste...'
cbagov
zmien == false na ==null

a poza tym nie powinno byc

if (nick_match != false) { alert('Niepuste pole');

?
Misiur66
Już masz pomógł, tylko jedna sprawa... nie reaguje na białe znaki. czy trzeba:

Kod
[^\\s]


?

Edit:

Przy użyciu:

Kod
var regularny = /.[^\\s]+/;

Nie działa sad.gif Znaczy nie reaguje na białe znaki.
cbagov
Moze sproboj mu ograniczyc jasno ciag

/^[^\\s]+$/
Misiur66
Hm... chyba dobrze zwraca tylko to:

Kod
if(nick_match == null)


jest źle... jak się robiło żeby coś zwracało true albo false?
cbagov
Jezeli nie ma wpasowania jest zwracane NULL w przypadku metody .match, stad jak chcesz sobie zmienic na tru fals to dopisz deko kodu
Misiur66
Czyli to nie traktuje każdej sapcji jako NULL bo przy alert nick_match, zwraca ' ', a jesli nic to 'NULL'. Czyli jest różnica.
cbagov
Spacji jako null na pewno nie skoro byla wymieniona w wyrazeniu.
match() zwraca albo NULL czyli 0 trafien albo tablica dopasowan.
Misiur66
Hm... to może za pomocą wyrreg.search(); poszukam białych znaków... dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.