基本上我有以下代码:
<input type="text" value="123" id="txtbox">
<script>
var myVar = document.getElementById('txtbox').value;
if (myVar.substring) {
alert('string');
} else{
alert('number');
}
</script>
无论你在文本框中输入什么值,它总是会提示string
。有没有一种方法,如果你在文本框中输入一个数字,它会提醒 number
而不是字符串?谢谢。
最佳答案
input
元素上的
value
始终 是一个字符串。它可能是一串数字。
如果您想知道该字符串是否只包含有效数字,您必须对其进行解析(并决定您认为什么是有效数字,并考虑到这一点)。
例如,人们会告诉您使用 parseInt(myVar)
或一元 +
(+myVar
) 或 isNaN(myVar)
(做一元 +
做的事)或 Number(myVar)
(相同),但是 :
<parseInt
只解析字符串开头,parseInt("345foo")
为345
parseInt
当然只适用于整数;你想要parseFloat
用于带小数部分的数字所有这些都无法理解千位分隔符
所有这些都无法理解不是
.
的小数点分隔符(例如,在许多语言环境中它是、
,有时甚至是空格)+myVar
和Number(myVar)
和isNaN(myVar)
等会将空字符串视为0
……那种事。因此,您必须根据要接受的输入对字符串进行一些准备。
一旦您决定了要处理的格式,这里有许多关于进行实际解析的问题和答案:
关于javascript - 检查文本框值是javascript中的字符串还是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032475/