判断手机所属运营商python正则表达式
时间: 2023-11-17 13:47:57 浏览: 77
以下是一个简单的Python正则表达式,可以用来判断中国大陆手机号码所属的运营商:
```python
import re
def check_phone_operator(phone_number):
"""
判断手机所属运营商
"""
cmcc_pattern = re.compile(r'^1(3[4-9]|4[7]|5[012789]|7[8]|8[23478])\d{8}$')
cucc_pattern = re.compile(r'^1(3[0-2]|4[5]|5[56]|6[6]|7[6]|8[56])\d{8}$')
ctcc_pattern = re.compile(r'^1(33|49|53|7[37]|8[019])\d{8}$')
if cmcc_pattern.match(phone_number):
return "中国移动"
elif cucc_pattern.match(phone_number):
return "中国联通"
elif ctcc_pattern.match(phone_number):
return "中国电信"
else:
return "未知运营商"
```
该函数接受一个手机号码作为输入,然后使用正则表达式来匹配该手机号码是否属于中国移动、中国联通或中国电信。如果匹配成功,返回相应的运营商名称;否则返回“未知运营商”。
相关问题
手机号判断所属运营商正则表达式
可以通过手机号码前三位来判断其所属运营商,具体规则如下:
中国移动:134、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198
中国联通:130、131、132、145、155、156、166、175、176、185、186
中国电信:133、149、153、173、177、180、181、189、199
可以使用Python正则表达式匹配手机号码前三位,然后根据匹配结果判断其所属运营商。例如:
import re
def get_operator(phone_number):
pattern = re.compile(r'^1(3[4-9]|4[7]|5[012789]|7[8]|8[23478]|9[8])\d{8}$')
match = pattern.match(phone_number)
if match:
prefix = match.group(1)
if prefix in ['134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '157', '158', '159', '178', '182', '183', '184', '187', '188', '198']:
return '中国移动'
elif prefix in ['130', '131', '132', '145', '155', '156', '166', '175', '176', '185', '186']:
return '中国联通'
elif prefix in ['133', '149', '153', '173', '177', '180', '181', '189', '199']:
return '中国电信'
return '未知运营商'
phone_number = '13812345678'
operator = get_operator(phone_number)
print(operator) # 输出:中国移动
js书写手机号判断所属运营商正则表达式
在JavaScript中,可以使用正则表达式来判断手机号所属运营商。以下是一个示例:
```javascript
function getOperator(phoneNumber) {
var pattern = /^1(3[4-9]|4[7]|5[012789]|7[8]|8[23478]|9[8])\d{8}$/;
if (pattern.test(phoneNumber)) {
var prefix = phoneNumber.substr(0, 3);
if (['134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '157', '158', '159', '178', '182', '183', '184', '187', '188', '198'].includes(prefix)) {
return '中国移动';
} else if (['130', '131', '132', '145', '155', '156', '166', '175', '176', '185', '186'].includes(prefix)) {
return '中国联通';
} else if (['133', '149', '153', '173', '177', '180', '181', '189', '199'].includes(prefix)) {
return '中国电信';
} else {
return '未知运营商';
}
} else {
return '手机号格式不正确';
}
}
var phoneNumber = '13812345678';
var operator = getOperator(phoneNumber);
console.log(operator); // 输出:中国移动
```
请注意,上述代码中的正则表达式和前缀列表与之前提供的Python示例相同,只是将代码转换为JavaScript语法。