编程思想之一:排除所有可能的错误后,最后的结果就是我们要找的真相
像是西方哲学中关于绝对或者上帝之类的描述,亦或中国关于道的描述。你无法描述绝对,上帝,道是什么,但是可以描述他不是什么,排除所有的不是,剩下的结果就是他哈哈。
不过不是完全相同,毕竟,这里,知道我们要符合的格式要求,算是预先知道了什么是绝对,上帝,道。

function validate(phoneNumber){
if(phoneNumber.length !== 8){
return false;
}
for (var i = 0;i < phoneNumber.length;i++){
if(i===3){
if(phoneNumber.charAt(i) !== '-'){
return false;
}
}else if (isNaN(phoneNumber.chartAt(i))){
return false;
}
}
return true;
}
代码可以分为两块排除:
首先:1.检查总体的轮廓是否符合,即是否是8位 2.通过遍历元素,检查两个东西,2.1检查第四个元素,即数组中第三位,是否符合-,再其次,检查其他元素是否位数字。 3.如果这些错误都没有,那么他就是符合的,也就是他就是上帝,绝对,道。
function validate(phoneNumber) {
if (phoneNumber.length > 8 || phoneNumber.length < 7) {
return false;
}
for (var i = 0; i < phoneNumber.length; i++) {
if (i === 3) {
if (phoneNumber.length === 8 && phoneNumber.charAt(i) !== '-') {
return false;
} else if (phoneNumber.length === 7 && isNaN(phoneNumber.charAt(i))) {
return false;
}
} else if (isNaN(phoneNumber.charAt(i))) {
return false;
}
}
return true;
}