2012-06-17 41 views
0

我試圖獲取它,以便在輸入到文本框中的值不是0.0到4.9之間的十進制數字時,在小數點前後只有一位數字,但消息不管我輸入什麼號碼都彈出來,我認爲我的正則表達式有問題,但我無法弄清楚。在javascript中的正則表達式

if ((textBox.value.search("/^[0-4]\\.[0-9]$/")) == -1) { 
    alert("Invalid Entry"); 
    return false; 
} 

返回false是存在的,因爲如果該數字無效則函數將退出。

回答

0

它應該是:

if ((textBox.value.match(/^[0-4]\.[0-9]$/))) { 
    alert("Invalid Entry"); 
    return false; 
} 

在這裏,你不感興趣的比賽的位置,但僅在匹配的事實,因此沒有必要使用searchmatch就夠了。

+0

我得到它的工作。謝謝。 – ShadowCrossZero

1

您也可以在不使用RegExp的情況下通過parseFloat解析數值並通過isFinite檢查結果來完成此操作。

// Parse the value as a float. If the value cannot be parsed, 
// `parseFloat` will return NaN  
var toFloat = parseFloat(textBox.value); 

// Use `isFinite` to verify that parsing was successful. If it 
// was, just check the range (i.e. between 0 and 4.9) 
if (isFinite(toFloat) && toFloat >= 0 && toFloat <= 4.9) { 
    // Input is valid 
} else { 
    // Input is invalid 
} 

希望有幫助。乾杯!

+0

這也有幫助,謝謝。 – ShadowCrossZero