JS之RegExp的使用

基本语法

ECMAScript通过RegExp类型支持正则表达式,正则表达式使用类似Perl的简洁语法来创建。关于正则表达式的简单介绍可以参考博主的另一篇文章:正则表达式。

字面量创建

语法如下:

	let expression = /pattern/flags;

  pattern代表模式,模式可以是任何简单或复杂的正则表达式,包括字符类、限定符、分组、向前查找和反向作用。每个正则表达式可以带零个或者多个的flags(标记),用于控制正则表达式的行为,常见的标记值有:

flags 含义
g 全局模式,表示查找字符串的全部内容,而不是找到第一个匹配的内容就结束
i 不区分大小写,表示在查找匹配的时候忽略pattern和字符串的大小写
m 多行模式,表示查找到一行文本末尾时会继续查找
y 粘附模式,表示只查找从lastInex开始及之后的字符串
u Unicode模式,启用Unicode匹配
s dotAll模式,表示元字符.匹配任何字符,包括"\n"和"\r"

  使用不同模式和标记可以创建出不同的正则表达式,比如:

	let pattern1 = /abc/g; //匹配字符串中所有的abc
	let pattern2 = /abc/i; //匹配字符串中第一个出现的abc
	let pattern3 = /abc/gi; //匹配字符串中所有的abc,并且忽略大小写

  正则表达式中还会涉及到元字符的概念,元字符常见的有:{ 、} 、( 、) 、[ 、] 、\ 、^ 、$ 、| 、? 、* 、+ 、.(点)。元字符在正则表达式中都有着特殊的功能,要匹配元字符本身的话,就需要用到转义字符:“\”,例如:

	let pattern1 = /[ab]d/g; //匹配所有ad或bd
	let pattern2 = /\[ab\]d/g; //匹配所有的[ab]d

RegExp构造函数

  除了上文的字面量创建正则表达式,RegExp构造函数也可以用于创建正则表达式,它的一般形式为:

	let pattern1 = new RegExp("abc", "g");
	//与let pattern1 = /abc/g;等价

  这里还需要注意的是,RegExp构造函数的两个参数都是字符串,因此在某些情况下需要进行二次转义,例如:

	let pattern1 = /\[ab\]c/g;
	let pattern2 = new RegExp("\\[ab\\]c","g");

  这里的pattern1和pattern2是等价的,其实也可以简单地理解为如果想要用RegExp构造函数表示的话,转义符号的数量是字面量的两倍。
  使用RegExp构造函数还可以基于原有的正则表达式,选择性地修改它们的标记,例如:

	let pattern1 = /abc/g;
	console.log(pattern1); //输出/abc/g
	let pattern2 = new RegExp(pattern1); 
	console.log(pattern2); //输出/abc/g
	let pattern3 = new RegExp(pattern1, "i");
	console.log(pattern3); //输出/abc/i

RegExp实例属性

  RegExp实例常见的属性有:

属性 代表
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这名没人用吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值