除去字符串中的数字以外的所有内容

Rei*_*eer 27 javascript regex

我在javascript中制作了一个小型计算器,用户输入他们想要借入的利率和金额,并计算他们可能获得多少奖励.

问题是我担心用户会输入符号,例如

贷款金额:£360,000 - 利率:4.6%

我不担心小数位,因为这些是必需的,似乎不会影响计算,它是像£和%这样的符号弄乱了.

有没有一种简单的方法从代码中删除这些符号:

<td><input type="text" name="loan_amt" style="background-color:#FFF380;"></td>
<td><input type="text" name="interest_rate" style="background-color:#FFF380;"></td>


function Calculate()
{
    var loan_amt = document.getElementById('loan_amt').value;
    //this is how i get the loan amount entered
    var interest_rate = document.getElementById('interest_rate').value; 
    //this is how i get the interest rate

    alert (interest_rate);
}
Run Code Online (Sandbox Code Playgroud)

Pin*_*ana 25

这是最短的:

replace(/\D/g,'');
Run Code Online (Sandbox Code Playgroud)


Alm*_* Do 12

请注意,您应该使用正确的DOM ID通过getElementById进行引用; 您可以使用.replace()方法:

var loan_amt = document.getElementById('loan_amt');
loan_amt.value = loan_amt.value.replace(/[^0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

但这也将删除浮点分隔符.我认为这是你问题的答案,但不是你问题的解决方案.要将用户输入解析为数字,可以使用parseFloat() - 我认为这样会更正确.

  • 您可以使用`.replace(/ [^ 0-9.]/g,'');`如果您需要包含点. (9认同)
  • 此解决方案不起作用.在另一个问题中接受的答案确实有效:http://stackoverflow.com/questions/5663080/regexpr-advice-needed-remove-all-chars-from-string-except-of-numbers-0-9-and (4认同)
  • 不,这不是一个好主意,因为用户可以输入1234 ... 56,这将被视为一个好数字 (2认同)

Jul*_*oux 6

这是我的解决方案:

\n\n
const filterNum = (str) =>\xc2\xa0{\n  const numericalChar = new Set([ ".",",","0","1","2","3","4","5","6","7","8","9" ]);\n  str = str.split("").filter(char => numericalChar.has(char)).join("");\n  return str;\n}\n\nconsole.log(filterNum("143.33$"));\n// 143.33\n
Run Code Online (Sandbox Code Playgroud)\n