Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]regexp
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
eS...
Witam
Mam taki mały problem i nie wiem jak to ugryźć.
Mianowicie chodzi mi to jak za pomocą regexp wyciagnąć ze stringa (lub raczej pozwolić na to aby w stringu mogły znaleźć się znaki): od 0-9 (czyli cyfry [0-9]) oraz . (kropka). Chodzi o to żeby w stringu mogła znajdować się liczba, np:
123 lub 0.12

Dzięki za pomoc
Pozdrawiam
Zeman
  1. <?php
  2. "[0-9]+(.[0-9]+)? "
  3. ?>

kropka jest znakiem specjalnym a znaki specjalne jeśli mają być traktowane jako literały to dodajemy "\"
eS...
Niestety przecinki też mi przepuszcza a nie może
nospor
Kod
str = "5.45";
objReg = /^\d+(\.\d+)?$/;
str = str.match(objReg);
if (str) alert('ok'); else alert('notok');
eS...
niestety sad.gif
używam gen_validator i mam coś w tym stylu
  1. var frmvalidator = new Validator("form");
  2. frmvalidator.addValidation("sztuk1","regexp=/^\d+(\.\d+)?$/","Dozwolone znaki to cyry 0-9, oraz .");

w inpucie sztuk1 musi pluc alertem w momencie kiedy bedzie cos innego niż
1
1.2
123
12333.2

Musi być możliwość wprowadzenia całej liczby i z kropką sad.gif
nospor
Cytat
niestety

Kod ktory ci podalem dziala. A to ze nie umiesz tego regexpa wlozyc do swojego skryptu to nie moja wina tongue.gif
eS...
nospor jak bym umial to bym nie zaczynal tego tematu. a twoj kod np 1,2 tez przepuszcza!
nospor
Cytat
a twoj kod np 1,2 tez przepuszcza!
zarty chyba sobie robisz... Wypisuje notok jak ta lala.

edit: moze ty masz cacheowanie wlaczone i ci ciagle zaczytuje jakis stary regexp?

Cytat
nospor jak bym umial to bym nie zaczynal tego tematu
Zaczales ten topic z pytaniem o wyrazenie i takowe dostales. Ponawiam wiec: nie nasz wina ze nie umiesz tego wyraznia do skryptu wlozyc winksmiley.jpg
eS...
  1. var frmvalidator = new Validator("form");
  2. frmvalidator.addValidation("sztuk1","regexp=/^\d+(\.\d+)?$/","Dozwolone znaki to cyry 0-9, oraz .");

Nie wiem. Musze to wstawić do tego formvalidatora, i nie działa. cache odpada
nospor
Az zajrzalem do tego skryptu z ktorego korzystasz. Niestety nie udalo mi sie znaleźć zadnych przykladow uzycia, wiec nie wiem czy dobrze go wykorzystujesz, czy to moze on źle dziala. Bo jesli nalezy go wykorzystac tak jak pokazujesz to on ma bledy.

po pierwsze:
zmien swojega stringa na:
"regexp=^\\d+(\\.\\d+)?$"

po drugie zmodyfikowalem kod js:
w okolicach linii 328 masz : case "regexp". po modyfikacji poczatek powinien wygladac tak:
Kod
        case "regexp":
         {
             if(objValue.value.length > 0)
            {
                objPattern = new RegExp(cmdvalue,"i");
                if(!objValue.value.match(objPattern))
.....

I teraz wszystko smiga jak ta lala smile.gif

Nie wiem czy autor testowal wyrazenia regularne czy nie, ale wyglada jakby nie smile.gif No chyba ze nalezy inaczej je zapodawac do klasy, ale jak mowilem przykladow nie znalazlem
eS...
Dzięki.
Przyda sie na przyszłość bo już poradziłem sobie inaczej. Po prostu jak jest przecinek to jest NaN, a więc dałem sprawdzanie isNaN smile.gif. w sumie prościej i mniej kodu. Bo w tym walidatorze musiałbym do każdego inputa dawać regexp a tak jeden if obskakuje wszystkie
nospor
A powiedz mi tylko, czy ty masz gdziesz stronke z wykorzystaniem tej klasy? Chcialbym sie temu przyjrzec, bo nurtuje mnie ten wadliwy regexp, a raczej czy to wina klasy czy wina zlego uzycia
eS...
mam ale niestety tą klase używam w miejscu gdzie nie mogę dac ci dostępu. może to mój błąd bo regexy to dla mnie czarna magia.
www.blachprofil2.com.pl może na głównej też gdzieś jest zobacz
pozdrawiam
nospor
Chodzilo mi o strone autora skryptu gen_validator a nie Twoja smile.gif

Dobra, znalazlem. Wystarczy tylko ze zamienisz swojego stringa na:
"regexp=^\\d+(\\.\\d+)?$"
i bedzie dzialac bez modyfikacji klasy
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.