Avatar billede pkdkk Nybegynder
03. oktober 2007 - 08:48 Der er 14 kommentarer og
1 løsning

Simpel tal validering

Hey ..

Kan godt være dette er et dumt spørgsmål.. Men findes der ikke en funktion der kan formatere denne streng.

$str = 1.000.000,00

Så den bliver lig med:

$str = 1000000
Avatar billede leshrac Nybegynder
03. oktober 2007 - 09:16 #1
Faktisk et godt spørgsmål som mange sikkert har et godt svar til...

men hvis de ikke har det.. så vil det være funktionelt (om end super grimt) at explode din streng på "." og "," og sætte tallet sammen igen...

sådan noget som

$arr = explode($str, ".");
$iArrSize = sizeof($arr);

$strNumber = "";
for($x = 0; $x < $iArrSize;$x++)
{
    $strNumber .= $arr[$x];
}

Den vil virke.... men der findes sq nok en smartere funktion ;)
Avatar billede showsource Seniormester
03. oktober 2007 - 09:18 #2
Du kan bruge str_replace() og substr()

Har dit tal altid samme format? ( ,xx til sidst? )
Avatar billede leshrac Nybegynder
03. oktober 2007 - 09:20 #3
Selvfølgelig :P

I would go with str_replace :) noget bedre :P
Avatar billede showsource Seniormester
03. oktober 2007 - 09:21 #4
Hvis du altid har ,xx til sidst:

$tal = "1.000.333,00";
echo $tal ."<br />";
echo str_replace(".", "", substr($tal,0,-3));
Avatar billede pkdkk Nybegynder
03. oktober 2007 - 09:28 #5
Har ikke altid ,xx tilsidst.. Håbede bare på at der var en funktion der kunne klare opgaven.., Men det er der åbenbart ikke? :)
Avatar billede showsource Seniormester
03. oktober 2007 - 09:40 #6
Det tror jeg ikke der gør.
Du kan også bruge:

$tal = "1.000.333";
echo $tal ."<br />";

$findes = strpos($tal,",");

    if($findes === false) {
    $tallet = $tal;
    }else{
    $tallet = substr($tal,0,-(strlen($tal)-$findes));
    }

echo str_replace(".", "", $tallet);

Men hvis du så har et , midt i det hele, er det jo noget være rod :O)
Avatar billede pkdkk Nybegynder
03. oktober 2007 - 09:47 #7
Humm.. Ved I så om der findes noget javascript der kan gøre det?? ..
Avatar billede leshrac Nybegynder
03. oktober 2007 - 09:50 #8
jamen hvis du har et "," skal alt efter det så ikke bare skæres væk?
for så er det jo stadig nemt nok...?
Avatar billede Slettet bruger
03. oktober 2007 - 09:55 #9
Du kan jo bare fjerne alle . fra strengen, og lad vær med at printe de sidste 2 tal efter kommaet....
Er det det du ænsker eller?
Avatar billede leshrac Nybegynder
03. oktober 2007 - 09:58 #10
ja.. hvis der kun muligvis er et komma... så kan du jo bare gøre sådan her

$tal = "1.000.333,00";
$talUdenPunktum str_replace(".", "", substr($tal,0,-3)); (som showsource foreslog det)

bagefter
$arrTal = explode($talUdenPunktum, ",");
echo $arrTal[0]; //Her skulle meget gerne stå 1000333

Hvis $tal var 1.021.523 uden komme eller med ,453454532 bagefter bliver det stadig kun konverteter til 1021523

Sådan du ønsker det?
Avatar billede leshrac Nybegynder
03. oktober 2007 - 09:59 #11
RETTELSE!

$talUdenPunktum = str_replace(".", "", substr($tal,0,-3)); (som showsource foreslog det)

Selvfølgelig '=' mellem '$talUdenPunktum' og 'str_replace'
Avatar billede pkdkk Nybegynder
03. oktober 2007 - 10:01 #12
Tja, det er jo alt sammen rigtig.. :) Men problemet er bare at løsningen skal være ret sikkert.. altså så en indtastning der ser således ud: 1,000,000.00 også er li med: 1000000

Men tror jeg validere med javascript i stedet, så feltet ikke må indeholde andet end tal..

Men tak for hjælpen.
Avatar billede leshrac Nybegynder
03. oktober 2007 - 10:04 #13
det kan du nu også gøre med PHP

når du henter tallet ud $tal = (int)$_POST["tal"];

når du skriver (int) foran kan variablen ikke være andet end et tal.. hvis det er ren tekst bliver variablen til et 0

på den måde vil det hele virke... :)
Avatar billede pkdkk Nybegynder
20. juni 2008 - 09:50 #14
Tak, smider du et svar :D ... Lidt sen tilbagemelding, beklager :)
Avatar billede pkdkk Nybegynder
18. august 2010 - 17:36 #15
Lukket!
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