检查字符串是否包含数字,同时允许多个小数点?

时间:2014-05-08 13:12:39

标签: php

这是测试版本号。它们只需要包含数字,但可以有多个小数点。

例如:

$a = '1.2.3';

is_numeric($ a)返回false,而floatval($ a)删除额外的小数部分,而不返回测试的有用答案。

是否有任何PHP功能可以执行此操作?

2 个答案:

答案 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";