ATM机允许 4或6位 PIN码,PIN码不能包含完全 4位数或正好6位数。
如果函数传递了有效的PIN字符串,请返回true
,否则返回false
。
E.g:
validatePIN("1234") === true
validatePIN("12345") === false
validatePIN("a234") === false
为什么我的代码不起作用?
var r = new RegExp('^\\d+$');
function validatePIN (pin) {
if(pin.test(r) && pin.length == 4 || pin.length == 6){
return true;
}else{
return false;
}
}
答案 0 :(得分:3)
你可以在一个正则表达式中完成所有工作..
var r = new RegExp('^(\\d{4}|\\d{6})$');
所以条件是,
function validatePIN (pin) {
return r.test(pin);
}
答案 1 :(得分:2)
x && y || z
被解释为:
(x && y) || z
如果长度 6 ,它将返回true
,即使它不 仅数字。要解决此问题,您可以添加括号:
x && (y || z)
答案 2 :(得分:1)
你应该在正则表达式实例上调用test
方法,而不是在字符串输入上调用:
select distinct(memberid) from membermetas
where memberMeta = 'kilo'
and memberMetaValue >= 90
and memberMeta = 'boy'
and memberMetaValue <= 175
还要注意逻辑运算符的优先级。