📜  JavaScript RegExp 完整参考(1)

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

JavaScript RegExp 完整参考

RegExp是JavaScript中的正则表达式对象。正则表达式是一种用来匹配字符串的模式,可用于搜索、替换、验证等各种操作。此文档为你提供了完整的RegExp参考,包括RegExp对象的各种方法和属性,同时提供了实例化正则表达式对象的示例和一些应用场景。

RegExp对象

RegExp对象是用于表示正则表达式的对象。在JavaScript中,我们可以通过两种方式来创建RegExp对象:

语法1:使用字面量表达式创建正则表达式对象
var pattern = /pattern/flags; 

其中,pattern是正则表达式的模式字符串,flags是一个包含零个或多个标志字符的字符串,用于控制正则匹配的行为。标志字符可以是以下任意组合:

  • g : 全局匹配
  • i : 忽略大小写
  • m : 多行匹配

例如:

var regex = /ab+c/igm;

上面的正则表达式表示:必须以一个a开头,后面跟着至少一个b,最后以一个c结尾。其中,g标志表示全局匹配,i标志表示忽略大小写,m标志表示多行匹配。

语法2:使用RegExp对象的构造函数创建正则表达式对象
var pattern = new RegExp(pattern, flags);

其中,pattern是正则表达式的模式字符串,flags是一个包含零个或多个标志字符的字符串,用于控制正则匹配的行为。和语法1中的标志字符含义一致。

例如:

var regex = new RegExp("ab+c", "gim");

上面的正则表达式与语法1中的正则表达式相同。

RegExp实例方法

RegExp对象包含一个用于操作正则表达式的方法集合。以下是常用的RegExp实例方法:

exec()

该方法用于查找字符串中与正则表达式匹配的字符。如果找到匹配的字符,则返回一个结果数组,否则返回null。结果数组的第一个元素是与正则表达式匹配的文本,其余元素是与正则表达式中的捕获组相对应的子串。

例如:

var regex = /(\w+)\s(\w+)/;
var str = "John Smith";
var result = regex.exec(str);
console.log(result);

输出:

["John Smith", "John", "Smith"]
test()

该方法用于测试字符串是否与正则表达式匹配。如果匹配则返回true,否则返回false

例如:

var regex = /John/g;
var str = "My name is John.";
if(regex.test(str)) {
    console.log("Match found.");
} else {
    console.log("Match not found.");
}

输出:

Match found.
RegExp实例属性

RegExp对象还包含一个用于获取正则表达式属性的属性集合。以下是常用的RegExp实例属性:

source

该属性用于获取正则表达式的模式字符串。

例如:

var regex = /John/g;
console.log(regex.source);

输出:

"John"
global

该属性用于判断正则表达式是否全局匹配。

例如:

var regex = /John/g;
console.log(regex.global);

输出:

true
ignoreCase

该属性用于判断正则表达式是否忽略大小写。

例如:

var regex = /John/gi;
console.log(regex.ignoreCase);

输出:

true
multiline

该属性用于判断正则表达式是否启用多行匹配。

例如:

var regex = /John/gm;
console.log(regex.multiline);

输出:

true
实例

以下实例演示了如何使用正则表达式对象进行字符串匹配:

var regex = /John/g;
var str = "My name is John. John is the best man. John's dog is cute.";
var result = str.match(regex);
console.log(result);

输出:

["John", "John", "John"]
结论

正则表达式是一种强大的字符串模式匹配工具,它在JavaScript开发中经常被用到。本文提供了完整的RegExp参考,包括各种正则表达式方法和属性、实例化正则表达式对象的示例和一些应用场景。希望能帮助开发者们更好地理解和使用正则表达式。