我正在尝试解决这个任务:
ATM 机允许 4 或 6 位 PIN 码,并且 PIN 码不能包含
不是正好 4 位数字或正好 6 位数字。
如果函数传递了有效的 PIN 字符串,则返回 true,否则返回
错误的。
eg:
validatePIN("1234") === true validatePIN("12345") === false
validatePIN("a234") === false
这是我的代码:
function validatePIN (pin) {
if(pin.length === 4 || pin.length === 6 ) {
if( /[0-9]/.test(pin)) {
return true;
}else {return false;}
}else {
return false;
}
}
它表明 --- 'a234' 的输出错误 - 预期: false,而是得到: true --- 为什么?这个/[0-9]/只显示数字?
先感谢您 :)
/[0-9]/
将匹配字符串中的任何数字,因此它匹配“a234”中的“2”。您需要使其从头到尾仅匹配数字:/^[0-9]+$/
or /^\d+$/
此外,您可以只使用正则表达式/^(\d{4}|\d{6})$/
匹配所有包含 4 或 6 个数字的字符串。
/^(\d{4}|\d{6})$/.test("1234"); // true
/^(\d{4}|\d{6})$/.test("12345"); // false
/^(\d{4}|\d{6})$/.test("123456"); // true
/^(\d{4}|\d{6})$/.test("a234"); // false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)