RegEx作为if else语句中的条件返回意外结果

时间:2018-03-26 22:59:06

标签: javascript regex

我想将参数传递给函数,并检查参数是否包含一个或两个字母或数字。如果是,则评估为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

我错了什么?另外,我该如何改进这段代码?

1 个答案:

答案 0 :(得分:2)

你的逻辑错误。在您正在测试的if声明中:

value === /^[0-9]{1,2}$/gi.test(value)

相当于:

'99' === /^[0-9]{1,2}$/gi.test('99')

相当于:

'99' === true

哪个是false

您只需要取出value ===部分。