正则复习总结 廖雪峰博客 - RegExp 1234\d // 数字\w // 数字或字母(同时包含大小写)\s // 匹配空白字符(空格,制表等). // (单个,占位1)匹配任意字符 123* // 任意个字符(包括0个)+ // 至少一个字符? // 0个或1个字符 1234567| // (A|B) 匹配A或B() // 分组Group, 一般结合exec使用[] // 对指定字符集做并集处理{} // 指定出现次数, {n},{n,m}。{3} 出现3次, {2,5} 出现2-5次 12^ 头部$ 尾部 案例: 1234567let r1 = /\d{3}\s+\d{3,8}/// 拆开来看\d{3} // 固定出现三个数字\s+ // 至少一个空白字符\d{3,8} // 3-8个数字 精确匹配1[0-9a-zA-Z\_] //匹配数字字母 匹配规则贪婪匹配12345678910// 即尽可能匹配更多的字符// (\d+) 默认采用贪婪匹配, 尽可能多匹配var re = /^(\d+)(0*)$/;re.exec('102300'); // ['102300', '102300', '']// (\d+?) 禁用贪婪匹配, 尽可能少匹配var re = /^(\d+?)(0*)$/;re.exec('102300'); // ['102300', '1023', '00'] 定义正则时标记: 1234567i 忽略大小写m 多行匹配g 全局匹配 类似于vim中的搜索, 可不断匹配, 通过读取正则对象的lastIndex变量获取当前索引 注意特殊字符需转义: 12345678910_ 下划线- 横杆\ 反斜杠 ^$ 常用方法: 12345678910111213// 字符串的split方法可以接受一个正则对象,用于分割字符串'a,b;; c xx , xxx'.split(/[\s\,\;]+/)// out: ['a', 'b', 'c', 'xx', 'xxx']// 给定字符串,判断是否满足匹配re.test = (str: string) => boolean // 分组,结合 () 使用var re = /^(\d{3})-(\d{3,8})$/;re.exec('010-12345'); // ['010-12345', '010', '12345']re.exec('010 12345'); // null JavaScript #JavaScript #正则表达式 #RegExp 正则复习总结 http://example.com/2023/01/08/JavaScript基础 - 正则复习总结/ 作者 Ray 发布于 2023年1月8日 许可协议 Web前端工程化 - 使用npm 上一篇 JavaScript 类与继承 下一篇