这是测试版本号。它们只需要包含数字,但可以有多个小数点。
例如:
$a = '1.2.3';
is_numeric($ a)返回false,而floatval($ a)删除额外的小数部分,而不返回测试的有用答案。
是否有任何PHP功能可以执行此操作?
答案 0 :(得分:3)
您可以使用preg_match()
:
if(preg_match('~^([0-9]+(\.[0-9]+)*)$~', $string)) {
echo 'ok';
}
正则表达式模式从字符串的开始^
到结尾$
匹配,并检查它是否以数字开头,然后仅包含数字 - 可选地由单个点分隔 - 并以再次号码。
答案 1 :(得分:2)
您可以使用strcspn
功能:
$q='1.2.3';
if (strcspn($q, '0123456789') != strlen($q))
echo "true";
else
echo "false";