JavaScript正则表达式(二)—— 修饰符

修饰符

修饰符是影响整个正则规则的特殊符号,会对匹配结果和部分内置函数行为产生不同的效果,JavaScript正则表达式(以后简称正则)中,包含以下三个修饰符:

  • i(intensity):大小写不敏感
  • g(global):全局查找,对于一些特定的函数,将迭代完整的字符串,获得所有的匹配结果,而不仅仅在得到第一个匹配后就停止进行
  • m(multiple):检测字符串中的换行符,主要是影响字符串开始标识符^和结束标识符$的使用

示例

函数说明:

matchhttp://www.w3school.com.cn/jsref/jsref_match.asp
testhttp://www.w3school.com.cn/jsref/jsref_test_regexp.asp


修饰符i的使用

var s1 = 'Hello';
var s2 = 'hello';
var p1 = /Hello/;
var p2 = /Hello/i;

console.log(p1.test(s1));
console.log(p1.test(s2));
console.log(p2.test(s1));
console.log(p2.test(s2));

输出

true
false
true
true

说明

可以看到正则p2会忽略s2中大写的H的到匹配结果


修饰符g的使用

var p1 = /hello/;
var p2 = /hello/g;
var str = 'hello world, hello world';

console.log(str.match(p1));
console.log(str.match(p2));

输出

这里写图片描述

说明
p1中未使用g修饰符,因此在匹配到第一个hello时,便停止后续匹配,提取匹配子字符串及匹配位置。而p2则会完整地匹配字符串,直至字符串结束位,并将所有结果提取出来。


修饰符m的使用

var str = 'hello world,\nhello world';
var p1 = /^hello/g;
var p2 = /^hello/gm;

console.log(str.match(p1));
console.log(str.match(p2));

注释^在此标识字符串的开始(在后续会进行详细介绍)

输出

这里写图片描述

说明

注意str中存在换行符\n。在p1p2存在字符串开始位置标识符,使用p1会对str进行整体匹配,因此只存在一个字符串开始位,和一个字符串结束位,因此只匹配到一个hello。而p2会将str根据换行符进行分割,可以理解为存在多个子串,因此存在多个字符串开始位和字符串结束位,所以会匹配到第二个hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值