基本上我有以下代码:
<input type="text" value="123" id="txtbox">
<script>
var myVar = document.getElementById('txtbox').value;
if (myVar.substring) {
alert('string');
} else{
alert('number');
}
</script>
Run Code Online (Sandbox Code Playgroud)
无论您在文本框中放置什么值,它都会始终发出警报string.有没有办法,如果你在文本框中放一个数字,它会提醒number而不是字符串?谢谢.
T.J*_*der 13
value在input元素是永远的字符串.它可能是一串数字.
如果你想知道该字符串是否只包含有效数字,你必须解析它(并决定你认为什么是有效数字,并允许它).
例如,你会让人们告诉你使用parseInt(myVar)或者一元+(+myVar)或isNaN(myVar)(它做的是一元+一样)或Number(myVar)(相同),但是:
parseInt只解析字符串的开头,parseInt("345foo")是345
parseInt当然,仅适用于整数; 你想要的parseFloat是小数部分的数字
所有这些都无法理解成千上万的分隔符
所有这些都无法理解不是的小数分隔符.(例如,在许多语言环境中,,有时甚至是空格)
+myVar和Number(myVar)等等isNaN(myVar)将空字符串视为0
......那种事.因此,您必须根据要接受的输入对字符串进行一些准备.
一旦你决定要处理哪种格式,这里有十几个问题,其中有关于进行实际解析的答案:
是isNaN(字面意思是“不是数字”):
var myVar = document.getElementById('txtbox').value;
var myNum = +myVar;//as suggested by T.J.
if (isNaN(myNum)) {
alert('string');
} else{
alert('number');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6974 次 |
| 最近记录: |