Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用ajax切掉第一个字母_Javascript - Fatal编程技术网

Javascript 用ajax切掉第一个字母

Javascript 用ajax切掉第一个字母,javascript,Javascript,我使用的是laravel中的currency软件包,它返回带有前缀的值,例如$10或€6 问题是,我通过ajax获得这些价格,并将它们相加,例如产品价格+尺码价格,然后我得到用户订单的总价,问题是当我有这些前缀$或€时,我无法计算价格数字,所以我需要从JavaScript中的价格中删除这些字母,我尝试了一些在网上找到的方法,比如slice(1)和substring(1)它们都没有给我想要的结果 这是我的密码: <script> var start_price = parseFloa

我使用的是laravel中的currency软件包,它返回带有前缀的值,例如
$10
€6

问题是,我通过ajax获得这些价格,并将它们相加
,例如产品价格+尺码价格
,然后我得到用户订单的总价,问题是当我有这些前缀
$
时,我无法计算价格
数字
,所以我需要从JavaScript中的价格中删除这些字母,我尝试了一些在网上找到的方法,比如
slice(1)
substring(1)
它们都没有给我想要的结果

这是我的密码:

<script>
 var start_price = parseFloat($('#price').attr('data-price'));
 $('#finalprice').val(parseFloat(start_price)); //default price
    $("#installation").click(function(){
        var amountToAdd = 0;
        var nf = new Intl.NumberFormat('en-US', {
              maximumFractionDigits:0, 
              minimumFractionDigits:0
          });
        $("#installation").each(function() {
            if($(this).is(":checked")){
                amountToAdd += parseFloat($(this).val());
                $('#finalprice').val(parseFloat(amountToAdd+start_price)); // change with installation price
            } else{
                $('#finalprice').val(parseFloat(start_price)); // back to default price
            }
        });
        $('#price').text(nf.format(parseFloat(amountToAdd+start_price)));
   });
</script>

var start_price=parseFloat($('#price').attr('data-price'));
$('finalprice').val(parseFloat(起始价格))//违约价格
$(“#安装”)。单击(函数(){
var amountToAdd=0;
var nf=新的国际编号格式(“en-US”{
最大分数位数:0,
最小分数位数:0
});
$(“#安装”)。每个(函数(){
如果($(this).is(“:checked”)){
amountToAdd+=parseFloat($(this.val());
$('finalprice').val(parseFloat(amountToAdd+start_price));//随安装价格变化
}否则{
$('finalprice').val(parseFloat(起始价格));//返回默认价格
}
});
$('#price').text(nf.format(parseFloat(amountToAdd+start#price));
});
我需要什么 从
start\u price
amountToAdd

额外问题 由于我使用了几种货币,并非所有货币都有
1
字母前缀,其中一些货币有
2
前缀

e、 g

10美元
Rp100000

如您所见,我的另一个货币前缀是
rp
,它是两个字母


Q:如何处理这种情况?

听起来您可以使用正则表达式从字符串中删除所有非数字字符。这将删除所有货币符号,而不考虑符号或其字符长度。您可以这样使用它:

<script>
    var start_price = parseFloat($('#price').attr('data-price').replace(/\D/g,'')); //HERE
    $('#finalprice').val(parseFloat(start_price)); //default price
    $("#installation").click(function(){
        var amountToAdd = 0;
        var nf = new Intl.NumberFormat('en-US', {
          maximumFractionDigits:0, 
          minimumFractionDigits:0
        });
        $("#installation").each(function() {
            if($(this).is(":checked")){
                amountToAdd += parseFloat($(this).val().replace(/\D/g,'')); //AND HERE
                $('#finalprice').val(parseFloat(amountToAdd+start_price)); // change with installation price
            } else{
                $('#finalprice').val(parseFloat(start_price)); // back to default price
            }
        });
        $('#price').text(nf.format(parseFloat(amountToAdd+start_price)));
    });
</script>

var start_price=parseFloat($('#price').attr('data-price')。replace(/\D/g')//在这里
$('finalprice').val(parseFloat(起始价格))//违约价格
$(“#安装”)。单击(函数(){
var amountToAdd=0;
var nf=新的国际编号格式(“en-US”{
最大分数位数:0,
最小分数位数:0
});
$(“#安装”)。每个(函数(){
如果($(this).is(“:checked”)){
amountToAdd+=parseFloat($(this).val().replace(//\D/g,');//这里
$('finalprice').val(parseFloat(amountToAdd+start_price));//随安装价格变化
}否则{
$('finalprice').val(parseFloat(起始价格));//返回默认价格
}
});
$('#price').text(nf.format(parseFloat(amountToAdd+start#price));
});
如果您需要在某个时候修改正则表达式,这将是一个有用的工具,可以找到适合您的正则表达式: