關於手機號碼四重號,四連號的校驗
阿新 • • 發佈:2019-01-28
友友們,聖誕節快樂,有沒有給女朋友準備禮物那!!!作為單身狗的我也假裝和哥哥去吃了飯,希望明年不是他,哈哈.
言歸正傳,在最近的一個需求中遇到一個關於手機號碼的校驗問題,的確難為了作為小白的我,現在整理一下解決思路;
1.需求背景
該需求是關於移動手機號碼新號段預約,使用者在頁面輸入自己喜歡的號碼來進行預約.我們知道手機號碼是11位,其中不同地市都有對應的號段,因此使用者輸入的只是號碼的後四位.
其中,明確要求四重號(例如8888),四連號(1234或4321),這樣的靚號不參與預約,那麼我們在要在使用者輸入類似情況時,給予正確的校驗,然後給出合適的提示語;
2.思路分析
首先,我想到利用正則來進行校驗,但是網路上實在找不到合適的正則;自己又寫出出來(原諒菜的我),最後在師傅的指導下,決定採用程式碼的方式來進行校驗;
3.解決方案
首先,獲取到尾號值,然後將它分割為陣列,然後迴圈遍歷,根據四重號和四連號的特點來進行計數,然後根據計數值來判斷是否是四重號或者四連號;
var endPhoneNo = weihao.split("");
var PINum = 0;//遞增數量
var DPNum = 0;//遞減數量
var DBNum = 0;//遞增數量
for(var i = 0;i < (endPhoneNo.length - 1) ; i++){
var curPhoneNo = endPhoneNo[i];
var nextPhoneNo = endPhoneNo[i+1 ];
if(((curPhoneNo * 1) + 1) == (nextPhoneNo * 1)){//遞增四連號
PINum ++ ;
}else if(((curPhoneNo * 1) - 1) == (nextPhoneNo * 1)){//遞減四連號
DPNum ++;
}else if(curPhoneNo == nextPhoneNo ){//四重號
DBNum ++;
}
}
if(PINum == 3 || DPNum == 3){
toast("四連號、四重號及以上不支援預約!" );
return false;
}else if(DBNum == 3){
toast("四連號、四重號及以上不支援預約!");
return false;
}
// 訊息彈出(需要在頁面定義div)
function toast(msg) {
$('.toastItem').show().find('span').text(msg);
setTimeout(function() {
$('.toastItem').hide()
}, 1500)
}
謝謝大家,以上是我的解決方案,希望和大家交流更好的方法,給我留言哦!!!