js中手机校验怎么编程

时间:2025-01-23 22:57:13 游戏攻略

在JavaScript中,可以使用正则表达式来校验手机号码的格式是否正确。以下是一些常见的方法:

方法一:基本格式校验

```javascript

function validateMobile(mobile) {

const reg = /^1[0-9]{10}$/;

return reg.test(mobile);

}

```

这个方法只校验手机号码是否为10位数字,以1开头。

方法二:更全面的格式校验

```javascript

function checkPhone() {

var mobile = document.getElementById("mobile").value;

if (mobile == "") {

alert("请输入手机号码");

mobile.focus();

return;

}

var regExp = /^(86)?((13\d{9})|(15[0,1,2,3,5,6,7,8,9]\d{8})|(18[0,5,6,7,8,9]\d{8}))$/;

if (!regExp.test(mobile)) {

alert("手机号码格式错误");

mobile.focus();

return;

}

}

```

这个方法考虑了手机号码可能带有86前缀,并且支持11位数字的格式。

方法三:特定运营商的校验

```javascript

var isChinaMobile = /^134[0-8]\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|18[2-478])\d{8}$/;

var isChinaUnion = /^(?:13[0-2]|145|15|176|18)\d{8}$/;

var isChinaTelcom = /^(?:133|153|177|18)\d{8}$/;

var isOtherTelphone = /^170()\d{7}$/;

function checkMobile(telphone) {

telphone = telphone.trim();

if (telphone.length !== 11) {

return { valid: false, message: '未检测到正确的手机号码' };

} else {

if (isChinaMobile.test(telphone)) {

return { valid: true, carrier: '移动' };

} else if (isChinaUnion.test(telphone)) {

return { valid: true, carrier: '联通' };

} else if (isChinaTelcom.test(telphone)) {

return { valid: true, carrier: '电信' };

} else if (isOtherTelphone.test(telphone)) {

return { valid: true, carrier: '其他运营商' };

} else {

return { valid: false, message: '手机号码格式错误' };

}

}

}

```

这个方法可以校验特定运营商的手机号码,并返回验证结果及运营商信息。

使用示例

```html

手机号码校验