PHP regular expression - filter number only
I know this might sound as really dummy question, but I'm trying to ensure that the provided string is of a number / decimal format to use it later on with PHP's number_format() function开发者_如何学Python.
How would I do it - say someone is typing 15:00 into the text field - what regular expression and php function should I use to remove the colon from it and make it only return the valid characters.
preg_match() returns array - so I can't pass the result to number_format() unless I implode() it or something like this.
Your help would be very much appreciated.
Using is_numeric or intval is likely the best way to validate a number here, but to answer your question you could try using preg_replace instead. This example removes all non-numeric characters:
$output = preg_replace( '/[^0-9]/', '', $string );
To remove anything that is not a number:
$output = preg_replace('/[^0-9]/', '', $input);
Explanation:
[0-9]
matches any number between 0 and 9 inclusively.^
negates a[]
pattern.- So,
[^0-9]
matches anything that is not a number, and since we're usingpreg_replace
, they will be replaced by nothing''
(second argument ofpreg_replace
).
This is the right answer
preg_match("/^[0-9]+$/", $yourstr);
This function return TRUE(1) if it matches or FALSE(0) if it doesn't
Quick Explanation :
'^' : means that it should begin with the following ( in our case is a range of digital numbers [0-9] ) ( to avoid cases like ("abdjdf125") )
'+' : means there should be at least one digit
'$' : means after our pattern the string should end ( to avoid cases like ("125abdjdf") )
You can try that one:
$string = preg_replace('/[^0-9]/', '', $string);
Cheers.
Another way to get only the numbers in a regex string is as shown below:
$output = preg_replace("/\D+/", "", $input);
use built in php function is_numeric
to check if the value is numeric.
You could do something like this if you want only whole numbers.
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);
}
}
精彩评论