函数计算的字符串位数(Function to count number of digits in s

2019-06-25 11:37发布

我一直在寻找在该字符串的快速PHP函数,给定一个字符串,将计算的数字字符数(即位数)。 我无法找到一个,有一个函数来做到这一点?

Answer 1:

这可以很容易地使用正则表达式来完成。

function countDigits( $str )
{
    return preg_match_all( "/[0-9]/", $str );
}

该函数将返回的次数图案发现,在这种情况下是任何数字量。



Answer 2:

第一分割你的字符串 ,下一个过滤器的结果只包含数字字符,然后简单地算 ,结果元素。

<?php 

$text="12aap33";
print count(array_filter(str_split($text),'is_numeric'));

编辑:添加一个基准好奇:(的上面的字符串和例程的百万循环)

preg_based.php是章概述的preg_match_all解决方案

harald@Midians_Gate:~$ time php filter_based.php 

real    0m20.147s
user    0m15.545s
sys     0m3.956s

harald@Midians_Gate:~$ time php preg_based.php 

real    0m9.832s
user    0m8.313s
sys     0m1.224s

正则表达式是明显优于。 :)



Answer 3:

对于PHP <5.4:

function countDigits( $str )
{
    return count(preg_grep('~^[0-9]$~', str_split($str)));
}


Answer 4:

该功能经过给定的字符串和检查每个字符,看它是否是数字。 如果是,它增加的位数,然后在最后返回。

function countDigits($str) {
    $noDigits=0;
    for ($i=0;$i<strlen($str);$i++) {
        if (is_numeric($str{$i})) $noDigits++;
    }
    return $noDigits;
}


文章来源: Function to count number of digits in string