正则表达式作为前端开发中常用的一项技术,一直以来都扮演着重要的角色。在 ES11 中,正则表达式得到了进一步的优化和拓展,具体用法和实践如下:
1. 添加新标志符
ES11 中,新增了两个标志符 i 和 s,分别表示忽略大小写和处理 unicode 码点。可以通过在正则表达式后面添加 i 或 s 进行使用:
- i 标志符:忽略大小写,可用于字符串的搜索,比如
/hello/i
匹配的是 "hello"、"Hello"、"HELLO" 等。 - s 标志符:处理 unicode 码点,可识别不同的字符集合,比如
/café/
匹配的是 "café",但/café/s
匹配的是 "caf\u00e9"。
以下为新标志符的示例代码:
const regex1 = /hello/i; const regex2 = /café/; const regex3 = /café/s; console.log(regex1.test('Hello World')); // output: true console.log(regex2.test('café')); // output: true console.log(regex3.test('caf\u00e9')); // output: true
2. 正则表达式捕获组的引用
ES11 中,还可以通过捕获组的引用来快速匹配文本中的某些特定内容。捕获组指的是用圆括号括起来的正则表达式,可以通过 $1、$2、$3 等引用来快速匹配到捕获组中的内容。
以下为正则表达式捕获组的引用的示例代码:
const regex4 = /(\d{4})-(\d{2})-(\d{2})/; const date = '2022-05-20'; const newDate = date.replace(regex4, '$2/$3/$1'); console.log(newDate); // output: "05/20/2022"
3. 省略正则表达式的 flags 参数
ES11 中,当使用 new RegExp()
构造函数创建正则表达式时,可以省略 flags 参数。因为 flags 是可选参数,当该参数缺省时,正则表达式将默认为有全局 g 标志和不区分大小写 i 标志。
以下为省略 flags 参数的示例代码:
const regex5 = new RegExp('hello', 'i'); const regex6 = new RegExp('hello'); console.log(regex5.test('Hello World')); // output: true console.log(regex6.test('Hello World')); // output: true
总结: ES11 中的正则表达式新增了 i 和 s 标志符,方便实现忽略大小写和处理 unicode 码点,同时还可以通过捕获组的引用快速匹配特定内容。记得可以省略 flags 参数,当然具体是否省略要参考实际需要。正则表达式是前端开发中常用的一项技术,要熟练掌握它的基础语法和常见应用场景,能够快速解决问题和提升开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6594f770eb4cecbf2d93d15c