Javascript 用户在文本字段中输入的数字值

Javascript 用户在文本字段中输入的数字值,javascript,html,Javascript,Html,我需要将用户输入的两个数字相加。为此,我创建了两个输入字段,在两个单独的变量中使用.val()从中检索值,然后添加它们。问题是字符串被添加,而不是数字。例如,2+3变成23而不是5。除了在输入框中使用type=number外,请建议如何操作 用于将字符串转换为数字: var a = '2'; var b = '3'; var sum = parseInt(a,10) + parseInt(b,10); console.log(sum); /* 5 */ 请记住,parseInt(str,rad

我需要将用户输入的两个数字相加。为此,我创建了两个输入字段,在两个单独的变量中使用.val()从中检索值,然后添加它们。问题是字符串被添加,而不是数字。例如,2+3变成23而不是5。除了在输入框中使用type=number外,请建议如何操作

用于将字符串转换为数字:

var a = '2';
var b = '3';
var sum = parseInt(a,10) + parseInt(b,10);
console.log(sum); /* 5 */
请记住,
parseInt(str,rad)
仅在
str
实际包含大量的base
rad
时才起作用,因此如果要允许使用其他base,则需要手动检查它们。还要注意的是,如果您想要的不止是整数,则需要使用parseFloat。

您可以使用parseInt(…)

例如:

var num = parseInt("2", 10) + parseInt("3", 10);
// num == 5
或者使用parseInt(http://www.w3schools.com/jsref/jsref_parseint.asp)还是语法浮动(http://www.w3schools.com/jsref/jsref_parsefloat.asp)在添加之前转换为数值

附:这是一个简单的答案。您可能需要执行一些验证/剥离/修剪等操作。

Number()是您希望“123a”返回的函数

parseInt()截断尾随字母“123a”返回123

<input type="text" id="txtFld" onblur="if(!Number(this.value)){alert('not a number');}" />


如果用户输入
2.5
,可能会重复什么?即使您假定只允许整数,也不要建议在不使用第二个参数的情况下使用
parseInt()
来指定基数10和
parseInt(“2”,10)
,因为否则如果用户输入前导零(例如,“077”),它可能(取决于浏览器)被视为八进制;如果用户输入前导的“0x”,它将被视为十六进制。如果
a
'2.5'
,该怎么办?如果a是
'0x77'
'077'
而您没有指定基数,该怎么办?@nnnnnn:修复了它,这是我最早的答案之一,当时我不知道
parseInt
问题。