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
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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 ;)
03. oktober 2007 - 09:18
#2
Du kan bruge str_replace() og substr() Har dit tal altid samme format? ( ,xx til sidst? )
03. oktober 2007 - 09:20
#3
Selvfølgelig :P I would go with str_replace :) noget bedre :P
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));
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? :)
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)
03. oktober 2007 - 09:47
#7
Humm.. Ved I så om der findes noget javascript der kan gøre det?? ..
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...?
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?
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?
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'
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.
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... :)
20. juni 2008 - 09:50
#14
Tak, smider du et svar :D ... Lidt sen tilbagemelding, beklager :)
18. august 2010 - 17:36
#15
Lukket!
Vi tilbyder markedets bedste kurser inden for webudvikling