我想将参数传递给函数,并检查参数是否包含一个或两个字母或数字。如果是,则评估为private static final int DATABASE_VERSION=2;
,如果不是,则评估为true
。
必须评估为false
的参数为true
以及从'PP', 'P', 'M', 'G', 'GG', 'XS', 'S', 'L', 'XL'
到'30'
的一系列数字,但可能还有更多。它们有什么共同之处:它们从不超过2个字符,所以我想出了这个正则表达式,但我不确定这是否是100%。
'50'
他们自己工作得很好。但是当我在/^[0-9]{1,2}$/gi.test('09'); // returns 'true'
/^[a-z]{1,2}$/gi.test('AZ'); // returns 'true'
/^[0-9]{1,2}$/gi.test('Word'); // returns 'false'
/^[a-z]{1,2}$/gi.test('Word'); // returns 'false'
语句中使用它时,我没有得到预期的结果:
if...else
我错了什么?另外,我该如何改进这段代码?
答案 0 :(得分:2)
你的逻辑错误。在您正在测试的if
声明中:
value === /^[0-9]{1,2}$/gi.test(value)
相当于:
'99' === /^[0-9]{1,2}$/gi.test('99')
相当于:
'99' === true
哪个是false
。
您只需要取出value ===
部分。