基本上我有以下代码:
<input type="text" value="123" id="txtBox"> <script> var myVar = document.getElementById('txtBox').value; if (myVar.substring) { alert('string'); } else{ alert('number'); } </script>
无论您在文本框中放置什么值,它都会始终提醒字符串.有没有办法,如果你在文本框中放一个数字,它会提醒数字而不是字符串?谢谢.
解决方法
@H_502_9@ input元素的值始终是一个字符串.它可能是一串数字.如果你想知道该字符串是否只包含有效数字,你必须解析它(并决定你认为什么是有效数字,并允许它).
例如,你会让人们告诉你使用parseInt(myVar)或一元(myVar)或isNaN(myVar)(执行一元做的)或Number(myVar)(相同),但是:
> parseInt只解析字符串的开头,parseInt(“345foo”)是345
> parseInt当然只适用于整数;你需要parseFloat用于包含小数部分的数字
>所有这些都无法理解成千上万的分隔符
>所有这些都无法理解不是的小数分隔符. (例如,在许多地区,或者有时甚至是空间)
> myVar和Number(myVar)和isNaN(myVar)等会将空字符串视为0
……那种事.因此,您必须根据要接受的输入对字符串进行一些准备.
一旦你决定要处理哪种格式,这里有十几个问题,其中有关于进行实际解析的答案:
> How do I Convert a String into an Integer in JavaScript?(注意特定于整数)
> What’s the fastest way to convert String to Number in JavaScript?