📜  正则表达式对象 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:10:58.119000             🧑  作者: Mango

正则表达式对象 js - Javascript

在Javascript中,正则表达式是非常重要的一个概念。Javascript提供正则表达式对象RegExp来处理匹配字符串的功能。RegExp对象具有非常多的语法规则和选项,可以灵活地处理各种复杂的文本匹配需求。

创建正则表达式对象

在Javascript中,可以使用字面量或者构造函数来创建RegExp对象。

使用字面量

使用RegExp字面量可以更加直观地创建正则表达式。字面量使用两个正斜杠将正则表达式包含在中间。例如:

var regExp = /java(script)?/i;

这里创建了一个匹配"javascript"或者"java"的正则表达式,不区分大小写。

使用构造函数

使用RegExp构造函数可以将正则表达式作为字符串传入。例如:

var regExp = new RegExp("java(script)?", "i");

这里和上面的例子创建了一个相同的正则表达式。

需要注意的是,在传递正则表达式字符串时需要将反斜杠进行转义。例如:

var regExp = new RegExp("\\d{3}-\\d{4}", "g");

这里创建了一个匹配电话号码格式的正则表达式。

使用正则表达式对象

创建好正则表达式对象之后,可以使用RegExp实例对象提供的方法进行匹配:

test方法

test方法用于在字符串中查找是否存在符合正则表达式的内容,并返回Boolean类型的值。例如:

var str = "I love JavaScript.";
var regExp = /java(script)?/i;
console.log(regExp.test(str)); // true

这里test方法返回true,表示在字符串中存在符合正则表达式的内容。

exec方法

exec方法用于在字符串中查找符合正则表达式的内容,并返回一个数组。例如:

var str = "I love JavaScript.";
var regExp = /java(script)?/i;
console.log(regExp.exec(str)); // ["JavaScript", "Script"]

这里exec方法返回一个数组,第一个元素是查找到的内容,第二个元素是第一个圆括号内的内容。

正则表达式语法

正则表达式有非常多的语法规则和选项,可以满足各种不同的需求。以下是一些常用的正则表达式语法:

字符集合

使用方括号[]来表示一个字符集合。例如:

/[abc]/    // 匹配a或b或c
/[0-9]/    // 匹配所有数字
/[^a-z]/   // 匹配除了小写字母以外的字符
量词

使用特殊字符来表示匹配的数量。例如:

/a+/   // 匹配1个以上的a
/a*/   // 匹配0个或多个的a
/a?/   // 匹配0个或1个的a
/a{3}/ // 匹配3个a
边界

使用特殊字符来表示边界。例如:

/^start/  // 匹配以start开头的字符串
/end$/    // 匹配以end结尾的字符串
/\btest\b/ // 匹配独立的test单词
分组

使用小括号()来进行分组,配合量词使用可以表示复杂的匹配规则。例如:

/(ab)+/  // 匹配1个或多个的ab
/(ab|cd)/ // 匹配ab或cd
正则表达式选项

RegExp对象还提供了很多选项来控制正则表达式的匹配行为:

i

不区分大小写匹配。

/var reg = /javascript/i; // 匹配javascript或JavaScript
g

全局匹配,可以多次匹配。

/var reg = /javascript/g; // 匹配所有的javascript
m

多行匹配,可以匹配多行字符串的每一行。

/var reg = /^javascript$/m; // 匹配以javascript对齐的每一行

以上是一些常用的正则表达式内容,可以帮助开发人员处理各种不同的文本匹配需求。