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

基本上我有以下代码
<input type="text" value="123" id="txtBox">
<script>
var myVar = document.getElementById('txtBox').value;

if (myVar.substring) {
alert('string');
} else{
alert('number');
}
</script>

无论您在文本框中放置什么值,它都会始终提醒字符串.有没有办法,如果你在文本框中放一个数字,它会提醒数字而不是字符串?谢谢.

解决方法

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?

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...