我有一个 JavaScript 函数,它接受一个数字并对该数字执行数学运算。但是,我传入的数字可能包含逗号,在我有限的 JavaScript 经验中,我在处理该值时遇到了问题。它似乎不将其视为数值类型。
最简单的方法是如何将一个值为 1,000 的参数转换为数值型的 1000?
我有一个 JavaScript 函数,它接受一个数字并对该数字执行数学运算。但是,我传入的数字可能包含逗号,在我有限的 JavaScript 经验中,我在处理该值时遇到了问题。它似乎不将其视为数值类型。
最简单的方法是如何将一个值为 1,000 的参数转换为数值型的 1000?
您可以为文本框设置一个 onblur() 函数,当用户试图离开文本框时,使用 JavaScript 的 replace 函数从值中移除逗号。
示例:
function checkNumeric(objName)
{
var lstLetters = objName;
var lstReplace = lstLetters.replace(/\,/g,'');
}
<input type="text" onblur="checkNumeric(this);" name="nocomma" size="10" maxlength="10"/>
一种快速而简单的方法是使用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
如果你在其他反转 '.' 和 ',' 的地区,那么你需要在正则表达式中进行更改。
逗号分隔的数字是语言特定的,不是所有语言都使用这种系统。
Stackoverflow 上有许多错误/不完整的答案,这些答案是针对特定地区的,或者建议使用来自 NPM 的第三方脚本,我认为这是过度杀伤力。
以下是一些不好的答案列表:
有一个特别的好答案涵盖了多个语言环境:
https://dev59.com/72gu5IYBdhLWcg3wASSO#45309230
将逗号分隔的数字字符串转换为数字类型(也称为类型转换)
+"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('');
}
只需将所有逗号替换为空格。
您可以按照以下步骤操作: http://blog.techsaints.com/2007/06/25/javascript-how-to-remove-all-commas-from-a-number/