Hét vraag- en antwoordplatform van Nederland

Hoe kan ik een bepaalde input controleren met PHP?

Ik wil bijvoorbeeld controleren of een GPS tag als volgt is ingevoerd:

15.2938, 34.2953

Het aantal cijfers voor en na de comma maakt niet uit.
Echter, het eerste cijfer voor de comma MOET een punt bevatten. Dit geldt ook voor het tweede getal.

Verder MOET die comma aanwezig zijn, alsmede de spatie die er achter volgt.

Wie helpt mij een eind op weg?

Verwijderde gebruiker
12 jaar geleden
1.1K

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (2)

$gpstag = '15.2938, 34.2953'

if (preg_match('/(-?[\d]{1,2}\.[\d]{1,6},{1}(-?[\d]{1,2}\.[\d]{1,6})/', $gpstag)) {
# match
} else {
# geen match
}


-? = optioneel minteken

[\d]{1,2} = 1 tot 2 cijfers

\. = een punt

[\d]{1,6} = 1 tot 6 cijfers

,{1} = 1 komma

Daarna word het eerste gedeelte nog eens herhaald

Toegevoegd na 44 minuten:
Zie ook:

http://php.net/manual/en/function.preg-match.php

en

http://www.addedbytes.com/download/regular-expressions-cheat-sheet-v1/png/
(Lees meer...)
rose
12 jaar geleden
Bovenstaande antwoord is heel goed. Dat is de beste oplossing maar misschien een beetje moeilijk de doorgronden. Je kunt ook de functie strpos(string, needle) gebruiken.

$string = '11.111, 22.222';
$eerstePunt = (int)strpos('.', $string);
$komma = (int)strpos(',', $string);
$tweedePunt = (int)strpos('.', $string, $komma);

If ($eerstePunt > 0 && $komma > $eerstePunt && $tweedePunt > $komma){
#goed;
}else{
#fout;
}
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden
rose
12 jaar geleden
Dus '11.1a1, 22.2b2' is ook goed?
Verwijderde gebruiker
12 jaar geleden
Oei, daar heb je me.. ;-)

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding