如今,手持智能手機已經成為人們的生活必需品之一。而且,隨着各類APP的崛起,手機號碼的使用頻率也越來越高。而要進行手機號碼的正確性檢測,可以採用以下的方法。
一、正則表達式
正則表達式是一種用途廣泛、功能強大的文本處理工具,可以通過正則表達式對輸入的號碼進行正確性檢測。
function checkPhone(phone){ var reg = /^1[3-9][0-9]{9}$/; if(reg.test(phone)){ return true; }else{ return false; } }
這個正則表達式採用的是國內11位手機號碼標準,以1開頭,第二位數字是3-9,後面9位任意數字組合。
二、前端校驗工具
很多常見的前端框架都內置了前端校驗工具,可以實現對手機號碼正確性的檢測。例如jQuery、Vue.js等。
//Vue.js的實現示例 data() { return { phoneNumber: '' } }, methods: { validatePhoneNumber: function (phoneNumber) { var reg = /^1[3-9][0-9]{9}$/; return reg.test(phoneNumber) ? true : false; }, onSubmit: function () { if(!this.validatePhoneNumber(this.phoneNumber)){ alert('請輸入正確的手機號碼'); return false; }else{ //提交表單 } } }
三、後端校驗
即使前端校驗已經通過,後端校驗也是必要的。通過獲取前端傳來的手機號碼,再進行一次正則表達式校驗,保證數據的合法性。
//node.js的實現示例 var http = require('http'); var url = require('url'); var querystring = require('querystring'); http.createServer(function (req, res){ var postdata = ""; req.addListener("data",function(postchunk){ postdata += postchunk; }); req.addListener("end",function(){ var params = querystring.parse(postdata); if(!params.phone.match(/^1[3-9][0-9]{9}$/)){ res.writeHead(200, {"Content-Type": "text/plain;charset=utf-8"}); res.write("請輸入正確的手機號碼"); res.end(); }else{ //提交數據 } }); }).listen(3000);
四、第三方SDK
目前市面上已經出現了很多第三方SDK,可以通過API接口進行手機號碼的正確性檢測。
//短信寶API的實現示例 var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://api.smsbao.com/sms', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); var phone = '13012345678'; xhr.send('u=yourusername&p=yourpassword&m=' + phone); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { var response = xhr.responseText; if(response == 0){ alert('手機號碼可用'); }else{ alert('請輸入正確的手機號碼'); } } };
五、小結
以上四種方法都可以用來校驗手機號碼的正確性,其中某一種或多種方法可以結合使用,達到最佳效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190012.html