我在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)
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() - 我认为这样会更正确.
这是我的解决方案:
\n\nconst 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