例如10.55元,为了统一网站的显示,是应该在PHP全部用number_format来转再显示在页面吗
还是说PHP只用floatval,在页面显示时候再处理。
在JS里,如何判断1,00.00这种形式
如果页面POST给PHP的格式是1,00.00,又如何处理。希望给点建议,如何更加统一和安全

解决方案 »

  1.   

    关于POST提交你可以在表单里hidden真实数据也可以在提交页面里进行处理强烈建议在服务端进行验证格式化
      

  2.   

    货币替换.
    1 理清思路,
    货币替换对正则而言就是要找那些 距离结尾或[.] 隔着/d{3}+ 的/d
    所以一开始就是(/d)(?=(/d{3})+($|/./d*))
    如果不希望回代后面的值,就用(/d)(?=(?:/d{3})+(?:$|/./d*))
    再补点预搜索条件(?=/d)(?!/./d*) 是数字,而且不能以 .开头 最后就拼接成了.
    (?<!/./d*)(?=/d)(/d)(?=(?:/d{3})+(?:$|/./d*))
    附php代码.
    <?php
    $money_arr =  array(
        "0",
        "12",
        "123",
        "1234",
        "12345",
        "123456",
        "1234567",
        "123456789",
        "1234567890",
        "12.345",
        "123.456",
        "1234.56",
        "12345.6789",
        "123456.789",
        "1234567.89",
        "12345678.9",
        "sdsd12345678.9"
    );
     
    foreach($money_arr as $key=>$val)
    {
        echo $val;
        $str = preg_replace("/(?=/d)(?!/./d*)(/d)(?=(?:/d{3})+($|/./d*))/","$1,",$val);
        echo "the replace result is";echo $str;
        echo "<hr/>";
    }function pr($arr){ //格式化输出数组.
        print("<pre>");print_r($arr);print("</pre>");
    }
    ?>