WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hjälp med regulära uttryck (https://www.wn.se/forum/showthread.php?t=1052940)

frecka 2012-04-06 11:15

Hjälp med regulära uttryck
 
Det är med regulära uttryck blir jag tokig på.

Jag vill

Kolla igenom alla tecken en sträng. Om ett tecken i strängen inte är en siffra(0-9) så skall den tas bort.

Anthon

tartareandesire 2012-04-06 11:51

[^0-9]+ matchar allt som inte är siffror.

martine 2012-04-06 14:03

Citat:

Ursprungligen postat av frecka (Inlägg 20436906)
Det är med regulära uttryck blir jag tokig på.
Kolla igenom alla tecken en sträng. Om ett tecken i strängen inte är en siffra(0-9) så skall den tas bort.

Mycket enklare kan väl knappast ett regexp bli…

$nu = preg_replace('/[^0-9]/',"",$innan);

Är du säker på att det är Java och inte JavaScript du sysslar med för övrigt (i din signatur), Anthon? ;)

frecka 2012-04-06 17:02

Jag löste del själv nu med lite fulkod (vanlig php) :)

Jag tog precis bort min signatur och bytte till den nuvarande. Men nej, javascript är jaginte så inne på med Java är fantastiskt roligt :)

makaflOw 2012-04-06 23:08

Du får gärna dela med dig av hur du löste de så fler som stöter på samma problem kan ta hjälp av den här tråden. :)

frecka 2012-04-06 23:31

Jag gjorde såhär:

Jag splittade strängen med hjälp av $array = str_split($string) och fick en array med alla tecken.

Loopade igenom arrayen med for($i=0;$i<count($array);$i++)

Jag kollade inuti loopen om is_numeric($tecken) == FALSE

Om villkoret var sant så sätter jag $tecken[$i] = FALSE

Efter loopen skrev jag $string = $implode($tecken);

Jake.Nu 2012-04-07 01:13

I.s.f. hade jag gjort så här istället.
PHP-kod:

$str '';
for (
$i 0$i strlen($input); ++$i) {
    if (!
is_numeric($input[$i])) {
        
$str .= $input[$i];
    }
}
$input $str;

echo 
$input" är nu ok"


captaindoe 2012-04-07 09:02

Martine's lösning borde vara betydligt snabbare än din lösning frecka.

frecka 2012-04-07 09:04

no shit captaindoe :)

captaindoe 2012-04-07 12:11

Varför använder du då din egna om du förstår det? Idiotiskt isåfall.


Alla tider är GMT +2. Klockan är nu 12:42.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson