我试图让parseFloat将userInput
(prompt
)转换为数字。
例如:
var userInput = prompt("A number","5,000")
function parse_float(number) {
return parseFloat(number)
}
当userInput = 5,000
时,parse_Float(userInput)
返回5
。
但是,如果用户正在输入值以更改其他内容(例如:进行银行存款或取款)那么我要正常工作,parse.Float(userInput)
需要返回5000
,而不是{{1 }}。
如果有人能告诉我如何做到这一点,那将对我有所帮助。提前谢谢。
答案 0 :(得分:3)
你的答案很接近,但不是很正确。
replace
不会更改原始字符串;它创造了一个新的。因此,您需要创建一个变量来保存新字符串,并在其上调用parseFloat
。
这里是固定代码:
function parseFloatIgnoreCommas(number) {
var numberNoCommas = number.replace(/,/g, '');
return parseFloat(numberNoCommas);
}
我还将该功能重命名为parseFloatIgnoreCommas
,更好地描述了它的作用。
答案 1 :(得分:1)
这是我用来从表单中擦除用户输入的数字的功能。它可以处理用户可能输入的任何内容,例如$或只是意外点击密钥。
我从对象中复制了以下内容:
>>import selenium
>>import expected_conditions as EC
Trackback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named expected_conditions
要使其成为非对象,只需将第一行更改为cleanInput : function(userValue){
//clean the user input and scrub out non numerals
var cleanValue = parseFloat(userValue.replace(/[^0-9\.]+/g,""));
return cleanValue;
},
答案 2 :(得分:0)
我已将评论中的信息汇总起来形成一个基本答案:
答案似乎只是将parse_float设置为运行:
number.replace(/,/g, "")
return parseFloat(number)
完整的代码如下所示:
var userInput = prompt("A number","523,000,321,312,321")
function parse_float(number) {
number.replace(/,/g, "")
return parseFloat(number)
}
返回:523000321312321