ES6学习笔记之正则表达式和字符串正则方法分析

作者:TomG 时间:2024-04-18 10:00:23 

本文实例讲述了ES6正则表达式和字符串正则方法。分享给大家供大家参考,具体如下:

RegExp构造函数

在ES5中,RegExp构造函数的参数有两种情况。

第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。


var regex = new RegExp('xyz', 'i');
// 等价于
var regex = /xyz/i;

第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。


var regex = new RegExp(/xyz/i);
// 等价于
var regex = /xyz/i;

但是,ES5不允许此时使用第二个参数,添加修饰符,否则会报错。


var regex = new RegExp(/xyz/, i);
// Uncaught TypeError: Cannot supply flags when constructing one RegExp from another

ES6改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而且,返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符。


new RegExp(/abc/ig, 'i').flags
// "i"

上面代码中,原有正则对象的修饰符是ig,它会被第二个参数i覆盖。

字符串的正则方法

字符串对象共有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]

字符串对象共有4个方法,可以使用正则表达式:match()、replace()、search()和split()。

希望本文所述对大家JavaScript程序设计有所帮助。

标签:ES6,正则表达式
0
投稿

猜你喜欢

  • Centos部署django服务nginx+uwsgi的方法

    2022-03-18 07:47:26
  • sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享

    2024-01-21 05:41:06
  • python+matplotlib绘制3D条形图实例代码

    2022-05-03 16:36:56
  • WEB前端开发规范文档

    2010-10-19 12:32:00
  • Python设计模式中的行为型策略模式

    2023-02-28 17:04:25
  • Python深度学习神经网络基本原理

    2023-05-08 20:20:32
  • python3 字符串str和bytes相互转换

    2023-03-31 09:12:47
  • 如何把数据库记录显示到列表框里去?

    2009-11-06 13:48:00
  • python+pygame实现坦克大战

    2023-12-04 10:52:38
  • Flask框架模板继承实现方法分析

    2021-02-20 04:09:52
  • CSS+asp仿迅雷人气指数

    2009-08-03 14:11:00
  • pytorch使用 to 进行类型转换方式

    2022-10-05 23:28:27
  • Pytorch 图像变换函数集合小结

    2022-06-14 08:52:09
  • 基于wxpython实现的windows GUI程序实例

    2022-07-03 21:33:01
  • SQL SERVER使用表分区优化性能

    2024-01-14 01:32:59
  • JavaScript之IE的fireEvent方法详细解析

    2024-06-05 09:11:28
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    2024-01-14 17:25:04
  • python和php哪个更适合写爬虫

    2023-10-28 00:51:14
  • Python中logging日志记录到文件及自动分割的操作代码

    2022-09-08 12:33:33
  • js/jq仿window文件夹移动/剪切/复制等操作代码

    2024-04-16 09:50:01
  • asp之家 网络编程 m.aspxhome.com