2013-02-15 76 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";