JavaScript中的类似函数转换字符串/数字

时间:2017-11-17 13:50:18

标签: javascript jquery type-conversion

我在PHP中有一个函数,它将一个数字插入到文本输入中并将其转换为float,并使用逗号分隔符表示小数。

之后,该号码将在数据库中注册。

现在,我需要用JavaScript(或jQuery)做一些事情,它会做同样的转换。

$num = $_POST['precoItem'];//get the input value
$precoAd = tofloat($num);//convert it to float
$precoFinal = number_format($precoAd, 2, ',', '');//remove any 'dots' or 'spaces'

PHP函数toFloat()就是这个:

function tofloat($num) {
    $dotPos = strrpos($num, '.');
    $commaPos = strrpos($num, ',');
    $sep = (($dotPos > $commaPos) && $dotPos) ? $dotPos : 
    ((($commaPos > $dotPos) && $commaPos) ? $commaPos : false);
    if (!$sep) {
        return floatval(preg_replace("/[^0-9]/", "", $num));
    } 

    return floatval(
         preg_replace("/[^0-9]/", "", substr($num, 0, $sep)) . ',' .
         preg_replace("/[^0-9]/", "", substr($num, $sep+1, strlen($num)))
     );
 }

例如,最终的数字不会有点或空格,只有逗号:例如:45354,85​​(45.354,85​​)

我的JS知识有限。我尝试过使用类似的东西:

var n = +$precoFinal;
var n = Number($precoFinal);
var n = parseFloat($precoFinal);

为什么人们喜欢这么多...你真的会说我的问题没有进行任何研究吗? RLY吗

1 个答案:

答案 0 :(得分:1)

试试这个:



$inventory = DB::table('my_recipe')
    ->leftJoin('ingredient', 'my_recipe.raw_id', '=', 'ingredient.raw_id')
    ->leftJoin('ingredient AS ingredients', 'ingredient.ingredient_name', '=', 'ingredients.ingredient_name')
    ->leftJoin('my_inventory', 'my_inventory.raw_id', '=', 'ingredients.raw_id')
    ->select(DB::raw('my_recipe.user AS user,my_recipe.raw_id AS raw_id,my_recipe.quantity AS quantity,ingredient.ingredient_name AS ingredient_name,IFNULL(SUM(my_inventory.have_quantity),0) AS have_quantity'))
    ->where('my_recipe.recipe_id', '=', $recipe_id)
    ->where('my_recipe.user', '=', $user)
    ->where('my_inventory.user', '=', $user)
    ->groupBy('ingredient_name')
    ->get();