2013-02-15 66 views
0

我寫了一個正則表達式的數量,他們可以訂購的每個(夏季,秋季,冬季)500的最大值。表達是 -測試正則表達式javascript

var chkquantity = ^([1-9]?\d|[1-4]\d{2}|500)$/ 

我不知道,如果測試是正確的 -

if ((chkquantity.test(quantity)== false){ 
    alertmsg = alertmsg + "Please limit each magazine to 500 copies or less:" + "\n"; 
} 

+5

爲什麼不將它轉換爲數字並將其與500進行比較? – Pointy 2013-02-15 17:40:45

+0

我不確定你的意思?對不起,我是一個完整的初學者,我掙扎着:( – user2073133 2013-02-15 17:42:47

+0

@ user2073133如果數量是一個真正的數字的字符串,你可以做一些JavaScript像parseInt(數量),然後檢查它是否> 500 – lmortenson 2013-02-15 17:45:16

回答

1

如果您正在處理數字,請將其作爲數字處理。

if (Number(quantity) > 500) { 
    alertmsg = alertmsg + "Please limit each magazine to 500 copies or less:" + "\n"; 
} 
+0

好的謝謝 – user2073133 2013-02-15 17:46:52

+0

真的嗎?'Number(「foo」)> 500'是可以接受的嗎? – allenhwkim 2013-02-15 18:11:44

+0

這取決於你的輸入字符串否?當然這不是驗證輸入。但這不是問題。 – 2013-02-15 19:26:50

1

關閉Torsten的答案,你可能也想驗證它是一個數字。

if(Number(quantity) > 500 || isNaN(quantity)) { 
+0

+1,不錯的升級 – 2013-02-15 19:32:19

0

由於您正在處理數字,您可以通過使用更簡單的方法逃脫。只需驗證它是全部數字,並且數值小於或等於500

function checkLimit(val){ 
    if (!isNaN(val) && parseInt(val)<500) 
     return true; 
    else if(isNaN(val)){ 
     alert ("Enter valid quantity."); 

    return false; 
} 

if (!checkLimit(quantity)) 
    alertmsg = alertmsg + "Please limit each magazine to 500 copies or less:" + "\n";