ES6 正则的扩展
2024-08-27 09:31:47
1. RegExp构造函数
ES5中,RegExp构造函数的参数:
- 参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)
- 参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。但是,ES5不允许此时使用第二个参数,添加修饰符,否则会报错。
ES6改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而且,返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符。
2. 字符串的正则表达式
字符串对象共有4个方法,可以使用正则表达式:match()、replace()、search()和split()。
ES6将这4个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。
String.prototype.match 调用 RegExp.prototype[Symbol.match]
String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
String.prototype.search 调用 RegExp.prototype[Symbol.search]
String.prototype.split 调用 RegExp.prototype[Symbol.split]
3. u修饰符
ES6对正则表达式添加了u修饰符,含义为“Unicode模式”,用来正确处理大于\uFFFF的Unicode字符。
也就是说,会正确处理四个字节的UTF-16编码。对于码点大于0xFFFF的Unicode字符,点字符不能识别,必须加上u修饰符。
ES6新增了使用大括号表示Unicode字符,这种表示法在正则表达式中必须加上u修饰符,才能识别。
/\u{61}/.test('a') // false
/\u{61}/u.test('a') // true
/\u{20BB7}/u.test('
最新文章
- keras 中如何自定义损失函数
- WGS84坐标和UTM坐标的转换
- Sublime Text 之运行 ES6 (基于babel)
- 【C++基础】关键字static 局部变量
- Android List<;Map<;String,String>;转json(例子)
- php基础知识--文件操作
- 7.PHP 教程_PHP常量
- 推荐一款功能强大的js 在线编辑器
- svg snap 笔记
- 【sunday算法】玄学字符串匹配
- JavaScript 中常见的内存泄露陷阱(摘)
- const成员函数用法
- vue-13-swiper组件的使用
- Spring Boot + Spring Cloud 构建微服务系统(九):配置中心(Spring Cloud Config)
- ML.NET 示例:二元分类之信用卡欺诈检测
- jquery 取id模糊查询
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作
- Windows配置java运行环境的步骤
- js 实现table表格拖拽和点击表头升降序排序
- 怎样看K线图(实图详解)
热门文章