# 应用

# 1. 匹配手机号码

我们先从比较简单的匹配手机号码开始。目前国内的手机号码是1(3/4/5/7/8)开头的11位数字,因此手机号码的正则可以分解为以下几部分:

以 1 开头:/^1/

第2位为3、4、5、7、8中的一个:/[34578]/ 或 /(3|4|5|7|8)/

剩余3-11位均为数字,并以数字结尾:/\d{9}$/

组合起来即为 /^1[34578]\d{9}$/ 或 /^1(3|4|5|7|8)\d{9}$/,因为使用捕获括号存在性能损失,所以推荐使用第一种写法。

# 2. 匹配电子邮件

标准的电子邮件组成为@.,

每部分的格式标准为(进行了相应的简化,主要为展示如何书写正则):

yourname:任意英文字母(a-z/A-Z)、数字(0-9)、下划线(_)、英文句点(.)、连字符(-),长度大于0

domain:任意英文字母(a-z/A-Z)、数字(0-9)、连字符(-),长度大于0

extension:任意英文字母(a-z/A-Z),长度2-8

optional-extension:"."开头,后面跟任意英文字母(a-z/A-Z),长度2-8,可选

每部分的正则表达式为:

  1. yourname:/[a-z\d._-]+/

  2. domain:/[a-z\d-]+/

  3. extension: /[a-z]{2,8}/

  4. optional-extension:/(.[a-z]{2,8})?/

组合起来形成最后的正则表达式:/^([a-z\d._-]+)@([a-z\d-]+).([a-z]{2,8})(.[a-z]{2,8})?$/;为了增加可读性可以将每部分用"()"包起来,并不要忘记起始和结束符 ^$。

Last Updated: 9/1/2021, 2:33:08 PM