正则表达式用于具有数千个分隔点的数字

时间:2019-02-16 13:13:16

标签: php

我的问题:我该怎么做 PHP代码输出对MySql数据库有效的十进制数字?

I have tried several times to rewrite the code. Without a result

    <?php   

    $str_zahl = $_GET['miete'];

        function float($str_zahl)
    {
    if(preg_match('/([0-9\.,-]+)/', $str_zahl, $array_treffer))
    {
    // Number found so we can carry on
    $str_zahl = $array_treffer[0];

    if(preg_match('/^[0-9.-\s]*[\,]{1}[0-9-]{0,2}$/', $str_zahl))
    {
    // Comma as Decimal Separator 
    // Remove all points and then convert the comma to a point
    $str_zahl = str_replace('.', '', $str_zahl);
    $str_zahl = str_replace(',', '.', $str_zahl);
    return floatval($str_zahl);
    }
    elseif(preg_match('/^[0-9,-\s]*[\.]{1}[0-9-]{0,2}$/', $str_zahl))
    {
    // point as decimal separator // remove all commas
    $str_zahl = str_replace(',', '', $str_zahl);
    return floatval($str_zahl);
    }
    elseif (preg_match('/^[0-9.-\s]*[\.]{1}[0-9-]{0,3}$/', $str_zahl))
    {

    // There are only thousands of separators
    // remove all points
    $str_zahl = str_replace('.', '', $str_zahl);
    return floatval($str_zahl);
    }
    elseif (preg_match('/^[0-9,-\s]*[\,]{1}[0-9-]{0,3}$/', $str_zahl))
    {

    // There are only thousands of separators
    // remove all commas
    $str_zahl = str_replace(',', '', $str_zahl);
    return floatval($str_zahl);
    }
    else
    return floatval($str_zahl);
    }
    else
    {
    return 0;
    }
        }
    ?> 
<?php echo $str_zahl; ?>

该数字未格式化。

没有引发错误消息。但是,这还是行不通的。

对于数字,例如1,000,演示文稿不会更改。 我是PHP的初学者,我真的需要帮助

0 个答案:

没有答案