Javascript 电话号码验证

Javascript 电话号码验证,javascript,html,Javascript,Html,您好,我的javascript验证有问题。我正在尝试验证一个电话号码,我希望它只显示号码和单个空格 我的Javascript代码: <script type="text/javascript"> function validateForm() { var x=document.forms["checkout_details"]["phone"].value; if (!isNaN(phone).value)//if the entered phone number

您好,我的javascript验证有问题。我正在尝试验证一个电话号码,我希望它只显示号码和单个空格

我的Javascript代码:

<script type="text/javascript">
function validateForm()
{
var x=document.forms["checkout_details"]["phone"].value;

        if (!isNaN(phone).value)//if the entered phone number is not a number
        {
            alert("Please enter a valid phone number");
            ret = false;//return false, form is not submitted
        }
}
</script>

函数validateForm()
{
var x=document.forms[“checkout_details”][“phone”]。值;
if(!isNaN(phone).value)//如果输入的电话号码不是号码
{
警报(“请输入有效的电话号码”);
ret=false;//返回false,表单未提交
}
}
HTML/PHP代码:

echo '<form name="checkout_details" action="confirm.php" onsubmit="return validateForm()" method="post">';
echo '<font color="red">*</font>&nbsp;<b>Phone Number:</b> <input type="text" name="phone" id="phone"><br /><br />';
echo '<input type="submit" value="Purchase">';
</form>
echo';
回音“*电话号码:

”; 回声';
有人帮我吗?告诉我我做错了什么。谢谢。

这是不正确的:

if (!isNaN(phone).value)//if the entered phone number is not a number
如果它是一个数字(双负等于正),则实际计算结果为。而且,
ret=false
应为
返回false


要在检查输入是否有效之前删除空格,请参阅。

您的函数需要返回
true
false
false
返回将阻止您发布表单

因此,改变这一点:

ret = false;//return false, form is not submitted
致:

此外,您不能依赖isNaN来验证此字段。除了不考虑任何带有空格或其他字符的电话号码外,它将无法正常工作,在这种情况下,您将否定其返回值(
!isNaN(x)
),这意味着除非您修复该问题,否则它将无法工作。最好使用正则表达式验证此字段。

试试这个

function validateForm()
{
var x=document.forms["checkout_details"]["phone"].value;

        if (!isNaN(x))
        {
            alert("Please enter a valid phone number");
            return false;
        }
        else
           return true;
}

我想买些东西,但我的电话号码都不能只用数字和空格来写。嗯,我想我会去其他地方购买产品。你的函数不会返回任何东西。我缺少什么?我如何修复它?首先,你需要决定你认为什么是可以接受的角色。只有1234567890中的数字?有空位吗?允许连字符吗?然后,您可以使用javascript正则表达式检查正确的format@MainMa你的号码是什么格式的?NANP只需要数字(甚至不需要空格)。此外,我不会通过检查输入的值是否不是数字来验证电话号码。这将使使用空格、
+
等输入的任何电话号码无效。您好,我尝试了此操作,但仍然无效。有什么建议吗?
function validateForm()
{
var x=document.forms["checkout_details"]["phone"].value;

        if (!isNaN(x))
        {
            alert("Please enter a valid phone number");
            return false;
        }
        else
           return true;
}