【问题标题】:Trim comma and whitespacing from number从数字中修剪逗号和空格
【发布时间】:2014-03-08 08:16:23
【问题描述】:

我正在使用此函数将平方米转换为平方英尺。

$sinput = rtrim(get_field('fl_area'), ", \t\n");  
if(trim($sinput) == "0"){echo ' ' ;} else {$soutput = metersToSquareFeet($sinput); echo $soutput . ' sq. m (' . number_format($sinput ) . ' sq. f)' ;} 

function metersToSquareFeet($meters, $echo = true)
{
    $m = $meters;
    $valInFeet = $m*10.7639;
    $valFeet = (int)$valInFeet;
    if($echo == true)
    {
        echo $valFeet;
    } else {
        return $valFeet;
    }
}

我遇到的问题是:

rtrim(get_field('fl_area'), ", \t\n");

用户以3,246 格式输入数字,我想将其转换为3246 以使我的功能正常工作。

当然我也可以以某种方式修改函数,而不是首先使用rtrim

【问题讨论】:

    标签: php numeric


    【解决方案1】:

    rtrim 只删除字符串末尾的字符,而不是中间的字符。使用preg_replace

    $sinput = preg_replace('/[,\s]+/g', '', get_field('fl_area'));
    

    【讨论】:

      【解决方案2】:

      您有几个选项,但可能最简单的一个是删除所有非数字字符。

      不确定您的 get_field 做了什么,但假设它只是从输入中获取字段,您可以像这样使用正则表达式。

      $sinput = preg_replace( '/[^0-9]/', '', $get_field('fl_area') );
      

      另见:PHP regular expression - filter number only

      【讨论】:

      • 你可以用\D代替[^0-9]
      【解决方案3】:

      您可以使用str_replace() 从字符串中删除所有出现的逗号和空格:

      $m = str_replace(array(',',' '), '', $m);
      

      甚至strtr():

      $m = strtr($m, array(',' => '', ' ' => ''));
      

      这可能比常规表达要快。但是,如果函数调用的数量很少,则差异不会很明显。

      【讨论】:

        【解决方案4】:

        试试这个:

        str_replace(array(',',' '), '', get_field('fl_area'));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多