JS 电话号码正则表达式

在前端开发中,经常会涉及到对电话号码的验证。电话号码的格式多种多样,有的包含国家区号,有的包含分机号等等。为了实现电话号码的准确验证,我们可以使用正则表达式来匹配电话号码的规则。
电话号码的常见格式
电话号码的格式因国家而异,以下是一些常见的电话号码格式:
- 中国大陆的号码:11位数字,例如:13800138000
- 美国的号码:10位数字,例如:555-555-5555
- 德国的号码:包含国家区号和城市区号,例如:+49 89 1234567
- 日本的号码:包含区号和分机号,例如:03-1234-5678-910
电话号码的正则表达式
下面我们来编写一些常见电话号码格式的正则表达式。
中国大陆的号码
中国大陆的手机号码是11位数字,格式通常为13/14/15/17/18开头,我们可以使用以下正则表达式进行匹配:
const chinesePhoneNumberRegex = /^1[34578]\d{9}$/;
示例代码:
const phoneNumber = '13800138000';
const chinesePhoneNumberRegex = /^1[34578]\d{9}$/;
if (chinesePhoneNumberRegex.test(phoneNumber)) {
console.log('中国大陆手机号码格式正确');
} else {
console.log('中国大陆手机号码格式错误');
}
运行结果:
中国大陆手机号码格式正确
美国的号码
美国的电话号码通常是10位数字,可以包含连字符或空格,我们可以使用以下正则表达式进行匹配:
const usPhoneNumberRegex = /^\d{3}[-\s]?\d{3}[-\s]?\d{4}$/;
示例代码:
const phoneNumber = '555-555-5555';
const usPhoneNumberRegex = /^\d{3}[-\s]?\d{3}[-\s]?\d{4}$/;
if (usPhoneNumberRegex.test(phoneNumber)) {
console.log('美国电话号码格式正确');
} else {
console.log('美国电话号码格式错误');
}
运行结果:
美国电话号码格式正确
德国的号码
德国的电话号码通常包含国家区号和城市区号,我们可以使用以下正则表达式进行匹配:
const germanyPhoneNumberRegex = /^\+\d{2}\s\d{2}\s\d+$/;
示例代码:
const phoneNumber = '+49 89 1234567';
const germanyPhoneNumberRegex = /^\+\d{2}\s\d{2}\s\d+$/;
if (germanyPhoneNumberRegex.test(phoneNumber)) {
console.log('德国电话号码格式正确');
} else {
console.log('德国电话号码格式错误');
}
运行结果:
德国电话号码格式正确
日本的号码
日本的电话号码通常包含区号和分机号,我们可以使用以下正则表达式进行匹配:
const japanPhoneNumberRegex = /^\d{2}-\d{4}-\d{4}-\d+$/;
示例代码:
const phoneNumber = '03-1234-5678-910';
const japanPhoneNumberRegex = /^\d{2}-\d{4}-\d{4}-\d+$/;
if (japanPhoneNumberRegex.test(phoneNumber)) {
console.log('日本电话号码格式正确');
} else {
console.log('日本电话号码格式错误');
}
运行结果:
日本电话号码格式正确
总结
通过以上示例,我们可以看到不同国家的电话号码有不同的格式,通过使用正则表达式,我们可以方便地对电话号码进行验证。在实际开发中,可以根据需求编写相应的正则表达式来验证电话号码的格式,确保用户输入的电话号码符合规范。
极客笔记