Avatar billede sungdk Nybegynder
16. april 2005 - 17:11 Der er 19 kommentarer og
1 løsning

Ereg med tal og punktum?

Hej med jer!

Hvordan er det lige at jeg laver en ereg som tjekker for at der KUN er indtastet tal (0-9) og/eller punktum.

Hvis der fx. er bogstaver, mellemrum eller "," skal den lave fejl. (Kan jeg godt lave selv. Men mere så i forstod :)

Tak!
Avatar billede ranglen Nybegynder
16. april 2005 - 17:22 #1
if(preg_match("/^[\d.]+$/", $text)){
// ok
}

godtager heller ikke en tom streng
Avatar billede sungdk Nybegynder
16. april 2005 - 17:25 #2
Virker ikke...

Prøvede lige at skrive et "," i string. Og den lavede ikke fejlen :(
Avatar billede nielle Nybegynder
16. april 2005 - 17:29 #3
^[\d\.]$
Avatar billede nielle Nybegynder
16. april 2005 - 17:30 #4
^[\d\.]+$
Avatar billede sungdk Nybegynder
16. april 2005 - 17:34 #5
Den siger: Warning: No ending delimiter '^' found in D:\xxxx\indstilling2.php on line 58

Linje 58 ser sådan ud: if (preg_match("^[\d.]+$", $_POST[indstil])){

Kan man ikke lave en simpel ereg? Sådan havde jeg da forstået det...
Avatar billede ranglen Nybegynder
16. april 2005 - 17:35 #6
$text = "1,23";

if(!preg_match("/^[\d.]+$/", $text)){
echo "Fejl i input";
}

--- virker fint?

nielle, punktum behøver ikke escapes når det står listet i en karakterklasse
Avatar billede ranglen Nybegynder
16. april 2005 - 17:37 #7
Warning: No ending delimiter

preg kræver du angiver start og slut på udtryk. Jeg har brugt slash, det har du ikke med i din
Avatar billede ranglen Nybegynder
16. april 2005 - 17:42 #8
if(ereg("^[0-9.]+$", $text)){
// ok
}
Avatar billede Slettet bruger
16. april 2005 - 17:46 #9
if(ereg("/^[0-9.]+$/", $text)){
// ok
}
Avatar billede Slettet bruger
16. april 2005 - 17:47 #10
sry, det var jo din ranglen
Avatar billede ranglen Nybegynder
16. april 2005 - 17:48 #11
wicez, ereg skal ikke have start og slut delimiter
Avatar billede Slettet bruger
16. april 2005 - 17:48 #12
if(preg_match("#^\d+(\.\d+)*$#", $_GET[$navn]))
Avatar billede sungdk Nybegynder
16. april 2005 - 17:53 #13
if(!preg_match("/^[\d.]+$/", $text)){

Den virker! Heller ik det samme som du skrev i første svar :D

Lav lige et svar
Avatar billede Slettet bruger
16. april 2005 - 17:54 #14
ved ikke helt om "." skal escapes, tror jeg den skal her.

okay ranglen :o)
Avatar billede Slettet bruger
16. april 2005 - 17:54 #15
Prøv

if(preg_match("#^\d+(\.\d+)*$#", $_GET[$navn]))
Avatar billede nielle Nybegynder
16. april 2005 - 17:56 #16
Bemærk, matcher også .....
Avatar billede Slettet bruger
16. april 2005 - 17:59 #17
Min gør ikke.

Der skal der mindst være ét tal. Hvis der er et(eller flere) punktummer, skal de alle være efterfulgt at et eller flere tal.
Avatar billede sungdk Nybegynder
16. april 2005 - 18:01 #18
Det er ramglen som skal have point...

Men tak for hjælpen ellers
Avatar billede nielle Nybegynder
16. april 2005 - 18:07 #19
\d+|\.
Avatar billede ranglen Nybegynder
17. april 2005 - 00:50 #20
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester