Regex 笔记

参考资料

[偷米骑巴哥]正规式苦手超入门

大纲

Regex 实用工具使用情境常用旗帜 flag (g/i/m)常用 特殊标点字元 ( . , ^ , $ , \ , |)中括号 [ ] 用法 (限定範围)限定出现次数 ( * , + , {} )常用 缩写 (\d数字,\w,\s空白字元)一些範例

Regex 工具

RegexrRegex 101Regex 左上角可选择 程式语言 (Regex语法大多可共通)上两者可用来测试 Regex 与 结果,并含有 CheatSheetRegex CheatSheet

使用情境

表单验证 pattern 属性取代文字搜寻关键字 (VSCode内也可搜寻档案用)

常用的旗帜 flag (i/g/m)

g 全域 (Global)i 忽略大小写 (Case-Insensitive)m 多行文字 (multiline) 範例如下
  const str = 'testA\ntestB\ntestC'  // HeyA testB testC  (只会取待第一个)  console.log(str.replace(/test/, 'Hey'))  // HeyA HeyB HeyC    (取待所有找到的)  console.log(str.replace(/test/g, 'Hey'))  // HeyA testB testC  (找test开头的,此时会无法找到各行开头)  console.log(str.replace(/^test/g, 'Hey'))  // HeyA HeyB HeyC  (因此要找各行开头,必须待上 m flag)  console.log(str.replace(/^test/gm, 'Hey'))

常用 特殊标点字元

(.) 点号 代表 任意字元,亦可为无(^test) 代表以 test 开头(test$) 代表以 test 结尾() 反斜线 代表 跳脱字元( 98 | 95 | 100 ) 直槓 代表 OR

中括号 [ ] 用法 (限定範围)

[b-z] 小写的 b 到 z[a-zA-Z] 同时包含大小写的 a 到 z[4-9] 4 到 9[a-z0-9] 中括号可以包括多个範围[^0-5] 在中括号中使用 ^ 代表 "排除"

限定出现次数 ( . / + / {} )

(*) 米字号 代表 任意 次数(+) 加号 代表 一 或 一次以上(?) 问号 代表 零 或 一次{2} 大括号 代表 限定次数{2,} 逗号 代表 至少要超过 2 个以上{,3} 逗号 代表 至多 3 个以上{2,9} 逗号 代表 至少 2 个 至多 9 个
  const data = 'test\ntest1\ntest12\ntest123'  // test+任意 1 个字元  const Plus1 = /test./gm     // test 后可有 任意 个字元(可无)  const Any = /test.*/gm      // test 后需有 至少 1 个字元  const Over1 = /test.+/gm     // test 后 可为 无字元 或 一个字元  const OneOrNone = /test.?/gm    // test 后需有 2 个字元  const WithTwo = /test.{2}/gm   // test 后至少有 2 个字元以上 (含2个)  const OverTwo = /test.{2,}/gm   // test 后至少 有 2 个字元 至多 9 个字元  const OverTwoLessNine = /test.{2,9}/gm 

常用 缩写 (\d Digital \w Word \s Space)

\d 代表 数字 等同于 [0-9]\D 代表 非数字 等同于 [^0-9]\w 代表 数字、字母、底线 等同 [a-zA-Z0-9_]\W 代表 非 \w 等同 [^a-zA-Z0-9_]\s 代表 空白字元 等同 [\r\t\n\f]\S 代表 非 空白字元 等同 [^\r\t\n\f]\t 代表 TAB 键\n 代表 换行

範例

电话号码网址
  // 以 09 开头 后接 8 个数字  const PhoneRegex = /^09[0-9]{8}$/  // ? 表前一个字可有可无 反斜线 和 . 要用跳脱字元  const urlRegex = /https?:\/\/[a-zA-Z0-9\.\/]+/

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章