如今,手持智能手機已經成為人們的生活必需品之一。而且,隨著各類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-tw/n/190012.html
微信掃一掃
支付寶掃一掃