我有一个javascript函数接受一个数字并对数字执行数学运算.但是,我传入的数字可能会有逗号,而且由于我使用Javascript的经验有限,我在使用该值时遇到了问题.它似乎不把它当作数字类型.
获取值为1,000的参数并将其转换为数字1000的最简单方法是什么?
我想将字符串"15,678"转换为值15678.方法parseInt()并且parseFloat()都返回15为"15,678".是否有捷径可寻?
为了根据区域设置格式化数字,有一个标准的 JavaScript API:Intl.NumberFormat
但是对于反向操作,将字符串解析为数字我找不到任何支持语言环境的标准 API:
真的没有 JavaScript 标准 API 可以根据语言环境将字符串解析为数字吗?
如果没有:是否有任何市场已建立的开源库可以这样做?
几个小时以来,我一直在寻找解决此问题的方法,但没有找到任何适合我的方法。
这里我们使用逗号作为小数点分隔符,当我发送一个像“15,50”这样的值时,在我的控制器中,我得到的模型值为“1550”,只有当我发送“15.50”时才有意义。
我涵盖了以下主题,但没有任何效果。
在 Asp.net Core 中将 CultureInfo 设置为具有 . 作为 CurrencyDecimalSeparator 而不是 ,
Aspnet Core Decimal 绑定不适用于非英语文化
我使用ajax发送表单,使用$form.serializeArray()如下:
function getFormData(xform) {
var $form = $('#' + xform);
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function (n, i) {
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
Run Code Online (Sandbox Code Playgroud)
发送:
function PostFormAjax(controller, metodo, params, redir, divacao, reloadgrid) {
if (params != null) {
var formData = new FormData();
var json = $.parseJSON(JSON.stringify(params));
$(json).each(function (i, val) {
$.each(val, function (k, …Run Code Online (Sandbox Code Playgroud) 我能够将数字转换为逗号分隔的区域设置字符串。是否有类似的函数可以将逗号分隔的区域设置字符串转换为数字?
var number = 1000000;
number.toLocaleString();
Output: "1,000,000"
Run Code Online (Sandbox Code Playgroud)
如何使用 JavaScript 将 1,000,000 转换为 1000000?
我有一个使用 格式化的输入字段.toLocaleString()。
然后我需要使用parseFloat()该值将其转换为数字。
要在美国语言环境中执行此操作,我只需value.replace(',','')在执行parseFloat().
但是,这在千位分隔符和小数点颠倒的欧洲语言环境中不起作用。
有没有一种方法可以确定您的用户所在的区域设置,然后确定是否首先反转逗号和小数?
我只是想让数字和特殊的字符像''一样.和','允许在我的文本字符串中.为此,我尝试了以下代码
var pattern = /[A-Za-z]/g;
var nospecial=/[\(#\$\%_+~=*!|\":<>[\]{}`\\)';@&?$]/g;
if (!ev.ctrlKey && charCode!=9 && charCode!=8 && charCode!=36 && charCode!=37 && charCode!=38 && (charCode!=39 || (charCode==39 && text=="'")) && charCode!=40) {
console.log(text);
if (!pattern.test(text) && !nospecial.test(text)) {
console.log('if');
return true;
} else {
console.log('else');
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但没有得到所需的输出.告诉我哪里错了.
我使用parseFloat方法将字符串转换为浮点数。它工作正常,但是当数字超过千时,它会在千位返回值。
那么parseFloat('1,022.55')
返回1而不是1022.55
如何解决这个问题?
我有字符串"722,311.75",我想将其转换为722,311.75(货币格式).以下代码不起作用.
var str = "722,311.75";
var nr = parseFloat(str, 10).toFixed(2);
console.log(nr); // Returns 722.00Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
javascript ×8
locale ×2
regex ×2
string ×2
asp.net-core ×1
asp.net-mvc ×1
c# ×1
jquery ×1
numbers ×1
parsing ×1
validation ×1