if(cpf.length !== 11 || cpf === "00000000000" || cpf === "11111111111" ||
cpf === "22222222222" || cpf === "33333333333" || cpf === "44444444444" ||
cpf === "55555555555" || cpf === "66666666666" || cpf === "77777777777" ||
cpf === "88888888888" || cpf === "99999999999"){
答案 0 :(得分:3)
你可以辩论这是否更好但这就是我喜欢在这种情况下做的事情:
// Name this something relevant to the problem
var possibleValues = ["0000000000", ...];
if (possibleValues.includes(cpf)) {
// do stuff
}
或者如果您所处的环境没有includes
if (possibleValues.indexOf(cpf) > -1) {
// do stuff
}
另一种可能性是使用正则表达式:
if (cpf.length === 11 && cpf.match(/^(\d)\1+$/)) {
// do stuff
}
^
:从头开始(\d)
:找一个数字并记住它\1+
:重复查找记住的数字$
:点击字符串答案 1 :(得分:2)
使用indexOf
类似
var possibleValues = [ "00000000000", "1111111111" ]; //add more values
if ( cpf.length != 11 || possibleValues.indexOf( cpf ) != -1 )
{
//value matching
}
答案 2 :(得分:0)
使用isNaN()
和RegExp.text()
函数的替代 Ecmascript5 解决方案:
if (cpf.length !== 11 || (!isNaN(f = cpf[0]) && new RegExp("^"+ f + "{11}$").test(cpf))) {
// do something
}
isNaN()
- 检查我们是否只有数字(在开始时)
new RegExp("^"+ f + "{11}$").test(cpf)
- 测试我们是否有一个相同的11位序列