2013-10-19 56 views
0

试图将某些验证添加到表单,但它始终如同正在验证的数据无效,即使其有效!验证始终未能验证

if (document.getElementById("mileageNumber").value == /^[0-9]+$/) 
{ 
    if (document.getElementById("vehicleNumber").value == /^[0-9]+$/) 
    { 
     <Desired Action> 
    } 
    else 
    { 
     alert("Please Enter Numbers Only"); 
    } 
} 
else 
{ 
    alert("Please Enter Numbers Only"); 
} 

任何人都可以看到我做错了什么吗?

回答

1

你需要测试的正则表达式,它不作为评估值。

if(/^[0-9]+$/.test(document.getElementById("vehicleNumber").value)){ 

    //Validation passed 

} 
1

您需要使用RegExp.test方法。

/^[0-9]+$/.test(document.getElementById("mileageNumber").value); 

您也可以简化您的正则表达式,像这样:/^\d+$/

0

您正在比较字符串与正则表达式对象。正则表达式对象描述正则表达式对象的结构。一个字符串只是一堆字符。他们根本不是同一件事......永远。就像伪代码apples == carrots永远不会返回true,string == regex也永远不会返回。它需要一个函数来测试一个字符串是否具有正则表达式对象描述的结构。

您可以使用string.match(..)针对正则表达式正确测试字符串。

document.getElementById("vehicleNumber").value.match(/^[0-9]+$/);