2013-10-19 58 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]+$/);