首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查输入是数字还是字母javascript

检查输入是数字还是字母javascript
EN

Stack Overflow用户
提问于 2013-08-04 18:51:43
回答 11查看 380.7K关注 0票数 81

我使用HTML和javascript格式的表单。我希望只有在用户输入字母并单击submit时才弹出警报。

所以我有HTML代码:

代码语言:javascript
复制
<form name="myForm" action="" onsubmit="return checkInp()" method="post">
    First name: <input type="text" name="age">
<input type="submit" value="Submit">   

和javascript代码:

代码语言:javascript
复制
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (x consists of any letters) // this is the code I need to change
{
alert("Must input numbers");
return false;
}
}
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-08-04 18:56:00

您可以使用isNaN函数来确定值是否未转换为数字。示例如下:

代码语言:javascript
复制
function checkInp()
{
  var x=document.forms["myForm"]["age"].value;
  if (isNaN(x)) 
  {
    alert("Must input numbers");
    return false;
  }
}
票数 129
EN

Stack Overflow用户

发布于 2013-08-04 19:02:16

使用Regular Expression仅匹配字母。如果你需要做一些更复杂的事情,比如确保它是一个特定的数字计数,了解一下也是很好的。

代码语言:javascript
复制
function checkInp()
{
    var x=document.forms["myForm"]["age"].value;
    var regex=/^[a-zA-Z]+$/;
    if (!x.match(regex))
    {
        alert("Must input string");
        return false;
    }
}

更好的办法是否认数字以外的任何东西:

代码语言:javascript
复制
function checkInp()
{
    var x=document.forms["myForm"]["age"].value;
    var regex=/^[0-9]+$/;
    if (x.match(regex))
    {
        alert("Must input numbers");
        return false;
    }
}
票数 51
EN

Stack Overflow用户

发布于 2013-08-04 18:54:33

您可以使用isNaN函数。如果数据不是数字,则返回true。应该是这样的:

代码语言:javascript
复制
function checkInp()
{
    var x=document.forms["myForm"]["age"].value;
    if (isNaN(x)) // this is the code I need to change
    {
        alert("Must input numbers");
        return false;
    }
}

注意: isNan将10.2视为有效数字。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18042133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档