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

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

最佳答案

input 元素上的

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

如果您想知道该字符串是否只包含有效数字,您必须对其进行解析(并决定您认为什么是有效数字,并考虑到这一点)。

例如,人们会告诉您使用 parseInt(myVar) 或一元 + (+myVar) 或 isNaN(myVar)(做一元 + 做的事)或 Number(myVar)(相同),但是 :

  1. parseInt只解析字符串开头,parseInt("345foo")345

    <
  2. parseInt 当然只适用于整数;你想要 parseFloat 用于带小数部分的数字

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

  4. 所有这些都无法理解不是 . 的小数点分隔符(例如,在许多语言环境中它是 ,有时甚至是空格)

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

……那种事。因此,您必须根据要接受的输入对字符串进行一些准备。

一旦您决定了要处理的格式,这里有许多关于进行实际解析的问题和答案:

关于javascript - 检查文本框值是javascript中的字符串还是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032475/

相关文章:

javascript - JavaScript 中的定时器控制

javascript - 将 d3 条形图重构为水平条形图

javascript对象键和值作为数组

javascript - 纯 html 文件中的跨域 AJAX

javascript - jQuery 链接故障

javascript - Fullcalendar 仅在页面重新加载后出现

javascript - ionic 2 : Add Class to Item While Removing Class From Other Items

Bootstrap 下拉菜单的 JavaScript 有时有效,有时无效

javascript - Highcharts:删除仅在图表上显示的图例并保留底部图例

javascript - 应用程序初始化时无法从 localStorage 初始化存储