Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js]regexp, dozwolone znaki
eS...
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Zeman
post
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.03.2007

Ostrzeżenie: (0%)
-----


  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 "\"
Go to the top of the page
+Quote Post
eS...
post
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


Niestety przecinki też mi przepuszcza a nie może
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kod
str = "5.45";
objReg = /^\d+(\.\d+)?$/;
str = str.match(objReg);
if (str) alert('ok'); else alert('notok');
Go to the top of the page
+Quote Post
eS...
post
Post #5





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


niestety (IMG:http://forum.php.pl/style_emoticons/default/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ą (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
niestety

Kod ktory ci podalem dziala. A to ze nie umiesz tego regexpa wlozyc do swojego skryptu to nie moja wina (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
eS...
post
Post #7





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


nospor jak bym umial to bym nie zaczynal tego tematu. a twoj kod np 1,2 tez przepuszcza!
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
eS...
post
Post #9





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Nie wiem czy autor testowal wyrazenia regularne czy nie, ale wyglada jakby nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) No chyba ze nalezy inaczej je zapodawac do klasy, ale jak mowilem przykladow nie znalazlem
Go to the top of the page
+Quote Post
eS...
post
Post #11





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
eS...
post
Post #13





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Chodzilo mi o strone autora skryptu gen_validator a nie Twoja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dobra, znalazlem. Wystarczy tylko ze zamienisz swojego stringa na:
"regexp=^\\d+(\\.\\d+)?$"
i bedzie dzialac bez modyfikacji klasy
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 17:48