可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm trying to get parseFloat to convert a userInput
(prompt
) into a number.
For example:
var userInput = prompt("A number","5,000") function parse_float(number) { return parseFloat(number) }
When userInput = 5,000
, parse_Float(userInput)
returns 5
.
However, if the user was inputting a value to change something else (ie: make a bank deposit or withdrawl) Then I to work properly, parse.Float(userInput)
needs to return 5000
, not 5
. If anyone could tell me how to do this it would help me so much. Thanks in advance.
回答1:
Your answer is close, but not quite right.
replace
doesn't change the original string; it creates a new one. So you need to create a variable to hold the new string, and call parseFloat
on that.
Here's the fixed code:
function parseFloatIgnoreCommas(number) { var numberNoCommas = number.replace(/,/g, ''); return parseFloat(numberNoCommas); }
I also renamed the function to parseFloatIgnoreCommas
, which better describes what it does.
回答2:
This is the function I use to scrub my user inputted numbers from a form. It handles anything a user may put in with a number like $ or just accidentally hitting a key.
I copied the following out of an object:
cleanInput : function(userValue){ //clean the user input and scrub out non numerals var cleanValue = parseFloat(userValue.replace(/[^0-9\.]+/g,"")); return cleanValue; },
To make it non-object just change the first line to cleanInput(){....
回答3:
I have put together info from the comments to form a basic answer:
The answer seems to simply be to set parse_float to run :
number.replace(/,/g, "") return parseFloat(number)
The complete code would look like this:
var userInput = prompt("A number","523,000,321,312,321") function parse_float(number) { number.replace(/,/g, "") return parseFloat(number) }
returns: 523000321312321