检查文本框值是字符串还是javascript中的数字

时间:2015-05-04 14:19:22

标签: javascript

基本上我有以下代码:

<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而不是字符串?谢谢。

2 个答案:

答案 0 :(得分:13)

value元素上的

input 始终一个字符串。它可能是一串数字。

如果你想知道该字符串是否只包含有效数字,你必须解析它(并决定你认为什么是有效数字,并允许它)。

例如,您可以让人们告诉您使用parseInt(myVar)或一元++myVar)或isNaN(myVar)(这会使用一元{ {1}}确实)或+(相同),

  1. Number(myVar)仅解析字符串的开头,parseIntparseInt("345foo")

  2. 345当然只适用于整数;您希望parseInt代表具有小数部分的数字

  3. 所有这些都无法理解千位分隔符

  4. 所有这些都无法理解不是parseFloat的小数点分隔符(例如,在许多区域设置中.或有时甚至是空格< / p>

  5. ,以及+myVarNumber(myVar)等会将空字符串视为isNaN(myVar)

  6. ......那种事。所以你必须根据你想接受的输入对字符串做一些准备。

    一旦您决定要处理哪种格式,就会有十几个问题与答案进行实际解析:

答案 1 :(得分:3)

isNaN(字面意思是“不是数字”):

var myVar = document.getElementById('txtbox').value;

var myNum = +myVar;//as suggested by T.J. 
if (isNaN(myNum)) {
   alert('string');
} else{
   alert('number');
}