我有一个javascript函数接受一个数字并对数字执行数学运算。但是,我传入的数字可能会有逗号,而且由于我使用Javascript的经验有限,我在使用该值时遇到了问题。它似乎不会将其视为数字类型。
获取值为1,000的参数并将其转换为数字1000的最简单方法是什么?
答案 0 :(得分:35)
您可以将文本框设置为具有 onblur()功能,这样当用户尝试离开文本框时,您可以使用javascript 替换<从值中删除逗号/ strong>功能
示例强>:
function checkNumeric(objName)
{
var lstLetters = objName;
var lstReplace = lstLetters.replace(/\,/g,'');
}
使用输入标记:
<input type="text" onblur="checkNumeric(this);" name="nocomma" size="10" maxlength="10"/>
答案 1 :(得分:23)
快速而肮脏的方法是使用String.replace()方法:
var rawstring = '1,200,000';
var cleanstring = rawstring.replace(/[^\d\.\-\ ]/g, '');
这会将cleanstring设置为:1200000
。假设您使用的是美国格式,则会发生以下转换:
1234 --> 1234
1,234 --> 1234
-1234 --> -1234
-1,234 --> -1234
1234.5 --> 1234.5
1,234.5 --> 1234.5
-1,234.5 --> -1234.5
1xxx234 --> 1234
如果你在其他语言环境中反转'。'和',',然后你必须在正则表达式中做出改变。
答案 2 :(得分:2)
只需用空格替换所有逗号。
你可以这样说: http://blog.techsaints.com/2007/06/25/javascript-how-to-remove-all-commas-from-a-number/
答案 3 :(得分:2)
将逗号分隔的数字字符串转换为类型编号(又名 type casting )
+"1,234".split(',').join('') // outputs 1234
<强>击穿强>:
+ - math operation which casts the type of the outcome into type Number
"1,234" - Our string, which represents a comma delimited number
.split(',') - split the string into an Array: ["1", "234"], between every "," character
.join('') - joins the Array back, without any delimiter: "1234"
一个简单的功能是:
function stringToNumber(s){
return +s.split(',').join('');
}