常见的10个正则表达式记录

363 阅读2分钟

持续更新中...

正则表达式是学习每一门语言都必须掌握的,虽然说学习正则表达式并不简单,但是它的魔力真的很大,仿佛魔法贴一样,如果能合理利用正则表达式,会提高开发的效率,也会有助于敲出一手优美的代码

于是笔者就去学习了一波,并且做了笔记

接下来让我们一起来学习10个常用的正则表达式,揭开正则表达式神秘的面纱,领略正则表达式的魅力所在。(建议初学的小伙伴跟着敲一遍,会更加理解)

匹配手机号

//1.匹配手机号
console.log(/^1[34578]\d{9}$/g.test("17623663280"));
// ^1必须以1开头,
// [34578]表示第二个数是 34578里面的一个
// \d表示所有的数字字符
// {9}重复的次数 9次 为\d定义有9个数字字符
// $符号收尾表示以9个数字结束
// g表示全局模式,表示查找字符串的全部内容,而不是只查找第一个

匹配QQ号

//2.匹配QQ号
console.log(/^[1-9][0-9]{4,9}$/g.test("2303666758"));
// ^[1-9] 表示开头第一个字符范围1-9
// [1-9] 表示之后的字符范围1-9
// {4,9}表示之后的字符数量范围在4-9个

匹配十六进制的颜色

//3.匹配十六进制的颜色
console.log(/#?([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g.test("#48D1CC"));
console.log(/#?([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g.test("#0AB"));
console.log(/#?([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g.test("0AB"));
// 以#开头 字符取值范围为0-9 a-f A-F 重复6次或3次 ?表示 #可有可无
// | 表示或 小括号表示一个括号组 把这两种情况放在一组 使得#直接应用于这个括号组

匹配邮箱

//4.匹配邮箱
console.log(
  /^([0-9a-zA-Z_\-\.]+)@([0-9a-zA-Z_\-\.]+)\.([A-Za-z]{2,6})$/g.test(
    "fdd.c_x_y@qq.com"
  )
);
//用户名@域名(也许是多级域名).顶级域名 分组
//用户名和域名格式一样(所有大小写字母,所有数字,以及_-.)
// . 和 - 需要转义  + 代表不限定字符数 1个-无数个
//顶级域名只能是大小写英语字母 一般由2-4个字母组成,也有超过4个字母的顶级域名
//有时候可以 限制4个字符增加匹配速度

匹配URL

// 5.匹配URL
console.log(
  /^((https?|ftp|file):\/\/)?([\da-z\.\-]+)\.([a-z\.]{2,6})([\/\w\.\-]*)*\/?$/g.test(
    "https://juejin.cn/user/fdd123/columns"
  )
);
// 协议:(https?|ftp|file):\/\/)? 可有可无
// 域名:数字用 \d 表增加范围  + 表示域名至少有一个字符 顶级域名同邮箱中的一样设置 唯一不同是url一般都是小写 英语句号.加上去了 避免特殊情况如:com.cn
// 具体资源地址:* 号 表示重复0到无穷大 外围加上 * 号 因为这样的资源组可能有多个 比如.../.../.../
// 最后用户可能会输入/ 用 \/?