Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenia regularne, nie działa mi to!
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
misiek172
  1. var n = tab[i].replace(/^[0-9]$/i, 'x');
  2. us.options[i] = new Option(n,parseFloat(tab[i]));


dlaczego nei działa mi to wyrażenie regularne? przecierz jest takie logiczne, zamień cyfry na 'x' exclamation.gif!!

Edit:

usunołem $ i działa, dziwne :/
sowiq
^ to początek stringu, $ to koniec. To zadziała Ci tylko dla stringu o jednym elemencie i ten element musi być cyfrą 0-9. Zainteresuj się określaniem liczności i umiejscawiania znaków w stringu.
ucho
Przecież to logiczne, masz napisane - zamień linię na składającą się z jednej cyfry na x smile.gif Pewnie wystarczy po prostu '/[0-9]/g' .
nrafal
Cytat(misiek172 @ 1.10.2008, 14:33:08 ) *
  1. var n = tab[i].replace(/^[0-9]$/i, 'x');
  2. us.options[i] = new Option(n,parseFloat(tab[i]));


dlaczego nei działa mi to wyrażenie regularne? przecierz jest takie logiczne, zamień cyfry na 'x' exclamation.gif exclamation.gif


Nie dziwne - to co napisałeś oznacza zamień ciąg składający się z jednej liczby na x. Poprawnie powinno być:
  1. var n = tab[i].replace(/^[0-9]+$/i, 'x');


Ten plus jest ważny, informuje o tym, że znaków ma być jeden lub więcej.

Edit: oczywiście, niepoprawnie, bo to zamieni cały ciąg na jeden x. Poprawny jest sposób ucho.
sowiq
Cytat(nrafal @ 1.10.2008, 20:28:55 ) *
Edit: oczywiście, niepoprawnie, bo to zamieni cały ciąg na jeden x. Poprawny jest sposób ucho.

Co więcej - zamieni tylko ciąg składający się z cyfr.
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.