Ich weiß, das klingt vielleicht wie eine Scheinfrage, aber ich versuche sicherzustellen, dass der bereitgestellte String ein Zahlen-/Dezimalformat hat, um ihn später mit der number_format () - Funktion von PHP zu verwenden.
Wie würde ich es tun - sagen Sie, jemand tippt 15:00 in das Textfeld - - welche regulären Ausdrücke und PHP-Funktionen sollte ich verwenden, um den Doppelpunkt daraus zu entfernen und nur die gültigen Zeichen zurückzugeben?.
preg_match () gibt Array zurück - daher kann ich das Ergebnis nicht an number_format () übergeben, es sei denn, implode () oder etwas ähnliches.
Ihre Hilfe wäre sehr dankbar.
Die Verwendung von is_numeric oder intval ist wahrscheinlich der beste Weg, um eine Zahl hier zu bestätigen. Um Ihre Frage zu beantworten, können Sie stattdessen preg_replace verwenden. In diesem Beispiel werden alle nicht numerischen Zeichen entfernt:
$output = preg_replace( '/[^0-9]/', '', $string );
Um etwas zu entfernen, das keine Nummer ist:
$output = preg_replace('/[^0-9]/', '', $input);
Erläuterung:
[0-9]
stimmt mit einer beliebigen Zahl zwischen 0 und 9 überein.^
negiert ein []
-Muster.[^0-9]
mit allem überein, was keine Zahl ist, und da wir preg_replace
verwenden, werden sie durch nichts ''
(zweites Argument von preg_replace
) ersetzt.Sie können das ausprobieren:
$string = preg_replace('/[^0-9]/', '', $string);
Prost.
verwenden Sie die integrierte PHP-Funktion is_numeric
, um zu prüfen, ob der Wert numerisch ist.
Sie könnten so etwas tun, wenn Sie nur ganze Zahlen wollen.
function make_whole($v){
$v = floor($v);
if(is_numeric($v)){
echo (int)$v;
// if you want only positive whole numbers
//echo (int)$v = abs($v);
}
}