JavaScript RegExp方法

本文详细介绍了JavaScript中正则表达式的使用方法,包括exec()和test()方法的应用及其实例属性,如global和ignoreCase等。同时,还探讨了如何通过正则表达式进行字符串匹配,并解释了如何利用各种属性和方法来获取匹配结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript RegExp方法

1.exec():

1.1、格式:match = pattern.exec(string);其中pattern是正则,string是被匹配的字符串;
1.2、返回第一个匹配项macth数组,其中后三个元素有index,input,length属性,还有捕获项从数组第一项开始,捕获项是在匹配项中提取出来的,数组第一个元素是整个模式匹配到的字符串
1.2.1、index:表示匹配项在string中的起始位置
1.2.2、input:就是string的一个副本

var string = "bbc abc cbc";
var reg = /bbc( abc( cbc)?)?/gi;
var match = reg.exec(string);
console.log(match);

输出如下:
Array[3]
0: “bbc abc cbc”
1: ” abc cbc”
2: ” cbc”
index: 0
input: “bbc abc cbc”
length: 3
proto: Array[0]

1.3、pattern中设置全局g那么每次使用pattern匹配string时候,返回下一个匹配项,也就是说原来匹配到string的第一个符合条件项时候,返回,现在从这里继续匹配剩下的字符串,找到符合的就返回;

var text = "cat bat sat fat";
var preg = /.(a)(t)/gi;
var matches = preg.exec(text);
console.log(matches[0]); // cat
var matches = preg.exec(text);
console.log(matches[0]); // bat
var matches = preg.exec(text);
console.log(matches[0]); // sat
var matches = preg.exec(text);
console.log(matches[0]); // fat

2.test():主要用于判断字符串是否能被某个正则匹配到,部分匹配或者完全匹配都行,也就是说只要正则能够找到一个匹配项就是true,返回boolean;

2.1、格式: boolean = pattern.test(string);
// a.整个字符串匹配正则
var reg = /.at/;
var string = "cat";
console.log(reg.test(string)); // true
// a.字符串某部分匹配正则
var string1 = "caa bat bcc";
console.log(reg.test(string1));

3.正则表达式的实例属性:

3.1、global:表示是否匹配字符串中所有满足正则表达式的项
3.2、ignoreCase: 表示是否不区分大小写
3.3、lastIndex:整数,表示开始搜索下一个匹配项的字符位置从0算起
3.4、 multline:表示是否在多行中匹配
3.5、source:返回正则表达式的字面量模式,不包括标志位
var reg = /at/gi;
console.log(reg.source); // .at 只返回模式没有标志
/* 以下三返回模式+标志 */
console.log(reg.toLocaleString()); // /.at/gi
console.log(reg.toString()); // /.at/gi
console.log(reg.valueOf()); // /.at/gi

var reg = new RegExp('[]at',gi);
console.log(reg.source); // []at 只返回模式没有标志
/* 以下三返回模式+标志 */
console.log(reg.toLocaleString()); // /[]at/gi
console.log(reg.toString()); // /[]at/gi
console.log(reg.valueOf()); // /[]at/gi

4.RegExp构造函数属性

4.1、input:表示被匹配的字符串
4.2、lastMatch: 表示最近一个匹配项,并不是最后一个匹配项,因为test和exec函数都是匹配到符合的项就停止,比如以下是good,但是再调用一次reg.test(string);lastMatch值就是goog
4.3、lastParen:最近一次匹配的最后一个捕获组
4.4、leftContext:input字符串中lastMatch之前的文本
4.5、rightContext:input字符串中lastMatch之后的文本
4.5、multiline:是否所有表达式都使用多行模式,谷歌是不undefined
4.6、获取最近一次匹配项的1-9个捕获组,比如获取第一个为RegExp.$1;
var reg = /(.)oo(.)/gim;
        var string = "you are good boy goog";
        reg.test(string);
        console.log(RegExp.input); // you are good boy
        console.log(RegExp.lastMatch); // good
        console.log(RegExp.lastParen); // d
        console.log(RegExp.leftContext); // you are 
        console.log(RegExp.multiline); // undefined
        console.log(RegExp.rightContext); // boy
        console.log(RegExp.$1); // g
        console.log(RegExp.$2); // d
        reg.test(string);
        console.log(RegExp.lastMatch); // goog
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值