代码之家  ›  专栏  ›  技术社区  ›  shafik

HTML数字字段toLocalString不工作

  •  0
  • shafik  · 技术社区  · 7 年前

    我有一个HTML数字字段。此字段值分配有以下错误

    The specified value "101,5" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?
    

    我需要一个值来转换 french 我的尝试是

    var dispersePercentageInput = $('.disperse-percentage');
    var percentage = 101.5
    dispersePercentageInput.val(Number(percentage).toLocaleString('de-DE'));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <input type="number" name="etude_disbursement_rate" value="100.00" class="disperse-percentage required" step="0.01" data-prefix="-" required="" id="id_etude_disbursement_rate" title="S'il vous plaît remplissez cet champ">

    101,5 但它表明 The specified value "101,5" is not a valid number.

    我的输入字段是

    <input type="number" name="etude_disbursement_rate" value="100.00" class="disperse-percentage required" step="0.01" data-prefix="-" required="" id="id_etude_disbursement_rate" title="S'il vous plaît remplissez cet champ">
    

    en US格式的用户输入

    3 回复  |  直到 7 年前
        1
  •  3
  •   Chetan    7 年前

    请使用“autoNumeric.min.js”

    <script src="~/Scripts/autoNumeric/autoNumeric.min.js" type="text/javascript"></script>
    

    在HTML文件中添加输入标记:

     <input type="text" class="form-control" id="numberint" data-a-dec="," data-a-sep="." data-a-sign="">
    

    <script type="text/text/javascript">
     $(function() {
        $('#numberint').autoNumeric('init');   
     });
    </script>
    
        2
  •  1
  •   Johnson Lee    7 年前

    是的,当然。 input:type=number 不是一个好的选择,它只能接受普通格式,但您的格式非常罕见。

    number

    1. 允许多个 .
    2. 允许信 e

    我建议只使用 text 改为键入,并通过RegExp或其他方式检查格式

        3
  •  0
  •   shafik    7 年前
    var formatter = new Intl.NumberFormat('de-DE', {
        minimumFractionDigits: 2
    });
    console.log("Output: "+formatter.format(sum));
    

    这对我来说很管用。