【问题标题】:How do i remove all characters in a string Javascript?如何删除字符串Javascript中的所有字符?
【发布时间】:2012-06-16 01:36:18
【问题描述】:

我有一个发送货币价值的表格,例如

<input type="text" name="amount" value="N50,000.00 NGN" />
<input type="button" value="submit">

我想删除金额字段中的所有字符,只留下这种格式的数字;

<input type="text" name="amount" value="50000" />
<input type="button" value="submit">

用 javascript 执行此操作的最佳方法是什么?

【问题讨论】:

  • 正则表达式 /[^0-9.]/g 将删除所有不是数字或小数点的内容。然后你就可以 parseInt 了。

标签: javascript string string-formatting money-format removeall


【解决方案1】:

首先想到你想要做的是使用类似这样的东西从数字中剥离字符串或值

<input type="text" name="amount" value="N50,000.00 NGN" />
<input type="button" value="submit">



var amount =  $('input[name=amount]').val().replace(/[A-Za-z$-]/g, "");
   amount=amount.replace(",", "");
   amount=parseInt(amount).toFixed(0);

这是一个工作示例

http://jsfiddle.net/C69u4/

【讨论】:

    【解决方案2】:

    试试这个

     var i = "N50,000.00 NGN";
     parseInt(i.replace(/[^\d\.]/gi, ""), 10);
    

    在线示例:http://jsbin.com/ojumir

    【讨论】:

      【解决方案3】:
      <script type="text/javascript" language="javascript">
      
          function doWork() {
              var amount = document.getElementsByName('amount');
              amount[0].value = parseInt(amount[0].value.replace(/[^0-9.]/g, "")).toFixed(0);
          }
      </script>
      
      <input type="text" name="amount" value="N50,000.00 NGN" />
      <input type="button" value="submit" onclick="doWork();">
      

      【讨论】:

        【解决方案4】:

        试试这个

            <script type="text/javascript" language="javascript">
        
                function doWork() {
                    var amount = document.getElementsByName('amount');
                    var str = amount[0].value;
                    var temp = '';
                    for (i = 0; i < str.length; i++) {
                        if (!isNaN(str[i]))
                            temp += str[i];
                    }
                    amount[0].value = temp;
                }
            </script>
        
        <input type="text" name="amount" value="N50,000.00 NGN" />
        <input type="button" value="submit" onclick="doWork();">
        

        【讨论】:

        • 您好,感谢您抽出宝贵时间,这确实有效,但有一点问题。结果,不是打印 50000 是 (50,000),而是打印 5000000 是 (N5,000,000)。谢谢
        【解决方案5】:

        使用

        Number('N50,000.00 NGN'.replace(/[a-z, ]/gi,''));
        

        如果您只想要整数部分,请使用:

        parseInt(Number('N50,000.00 NGN'.replace(/[a-z, ]/gi,'')),10);
        

        replace 部分首先从字符串中删除所有字母字符、逗号和空格。

        【讨论】:

        • 这就是答案的parseInt 部分。我想金额也可能是N50,000.34 NGN,在这种情况下,Number 转换将保留小数。
        • @ymutlu:它们是修饰符。 g 代表全局(所有实例),i 代表不区分大小写('ignorecase')。见regular-expressions.info/modifiers.html
        • 我会用 /[^0-9.]/g 代替。在用户输入其他符号的情况下覆盖所有基础。
        【解决方案6】:

        您可以尝试遍历字符串并获取数字字符并将它们附加到结果字符串中。我不知道这是否是最好的方法,但它确实有效。

        var res = "";
        for (var c in str) { if (str[c].match(/\d/)) { res += str[c];  }  }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-04
          • 2015-12-02
          • 1970-01-01
          • 2022-01-03
          • 2020-08-21
          • 2011-10-19
          • 1970-01-01
          • 2021-04-07
          相关资源
          最近更新 更多