使用JavaScript验证电话号码

使用JavaScript验证电话号码,javascript,html,Javascript,Html,我有一个包含三个元素的表单。我想在用户输入电话号码时验证它。如果用户移动到下一个元素,并且电话号码包含和字符,而这些字符不是号码,我希望显示一个alertbox 我写了一些代码,但完全被难住了。我的功能存在的问题是,即使我只在phone number元素中输入数字,仍然会显示警报框。我的代码如下所示: <script type="text/javascript"> function validateForm() { checkNr= isNaN(document.forms[0].e

我有一个包含三个元素的表单。我想在用户输入电话号码时验证它。如果用户移动到下一个元素,并且电话号码包含和字符,而这些字符不是号码,我希望显示一个alertbox

我写了一些代码,但完全被难住了。我的功能存在的问题是,即使我只在phone number元素中输入数字,仍然会显示警报框。我的代码如下所示:

<script type="text/javascript">
function validateForm()
{
checkNr= isNaN(document.forms[0].elements[1])
if(checkNr == true)
{
window.alert("You can only enter numbers. Please try again")
}
} 
</script>

<form>
  <strong>FULLNAME: </strong><input type="text" / id="name"><br />
  <strong>PHONE NR: </strong><input type="text" id="phone"  onblur="validateForm()" />
  <strong>NATIONALITY</strong><input type="text" id="nat" /><br />
  <input type="button" id="subButton" onclick="calc()" value="Submit" />
</form>

函数validateForm()
{
checkNr=isNaN(document.forms[0]。元素[1])
如果(checkNr==true)
{
window.alert(“您只能输入数字,请重试”)
}
} 
全名:
电话号码: 国籍

提前感谢您的所有回答和帮助。

您应该使用正则表达式。请看这里:


您应该使用正则表达式执行此操作。请看这里:

改变

document.forms[0].elements[1]

您测试的是元素本身,而不是元素的值

顺便说一句,如果有人用破折号或括号(例如:(555)123-4567)输入电话号码,您希望发生什么情况?

更改

document.forms[0].elements[1]

您测试的是元素本身,而不是元素的值

顺便说一句,如果有人用破折号或括号(例如:(555)123-4567)输入电话号码,你预计会发生什么?

你会发现许多实现目标的例子:

例如,如果您只能使用数字:

function phonenumber(inputtxt)  
{  
  var phoneno = /^\d{10}$/;  
  if((inputtxt.value.match(phoneno))  
        {  
      return true;  
        }  
      else  
        {  
        alert("message");  
        return false;  
        }  
}
你会发现许多实现目标的例子:

例如,如果您只能使用数字:

function phonenumber(inputtxt)  
{  
  var phoneno = /^\d{10}$/;  
  if((inputtxt.value.match(phoneno))  
        {  
      return true;  
        }  
      else  
        {  
        alert("message");  
        return false;  
        }  
}

请尝试提醒
document.forms[0].elements[1]
自身,以查看值是否符合您的预期。请尝试提醒
document.forms[0].elements[1]
自身,以查看值是否符合您的预期。非常感谢您给出了清晰的答案。效果很好。老实说,我没有想过如果有人闯进来会发生什么。通过阅读一些回复,我可以看到需要使用一些模式。不幸的是,我不明白代码…非常感谢你的明确答案。效果很好。老实说,我没有想过如果有人闯进来会发生什么。通过阅读一些回复,我可以看到需要使用一些模式。不幸的是,我不明白代码。。。