JavaScript RegExp 对象
JavaScript RegExp 对象
JavaScript 中的 RegExp 对象是一个用来进行正则表达式操作的内置对象。RegExp 表示正则表达式,是由一个字符序列和一组选项指定的模式。
创建 RegExp 对象
RegExp 对象可以通过字面量语法或构造函数来创建。字面量语法可以直接在代码中使用,而构造函数则需要使用 new
关键字:
// 字面量语法创建 RegExp 对象
const regex1 = /pattern/flags;
// 构造函数创建 RegExp 对象
const regex2 = new RegExp('pattern', 'flags');
其中 pattern
参数为正则表达式模式字符串,flags
参数为可选的标记参数。
RegExp 标记
RegExp 中的标记是可选的,用于指定正则表达式如何匹配,可包含一个或多个标记。
i
:忽略大小写g
:全局搜索m
:多行搜索
i
标记
使用 i
标记可以忽略正则表达式中的大小写区别。
const regex = /abc/i;
regex.test('Abc'); // true
g
标记
使用 g
标记可以匹配字符串中的全部符合正则表达式的部分。
const regex = /abc/g;
'abcABCabc'.replace(regex, 'x'); // "xABCx"
m
标记
使用 m
标记可以进行多行匹配,在字符串中同时匹配多个行。
const regex = /^/m;
'red\nblue'.match(regex); // ["", ""]
RegExp 属性和方法
RegExp 对象拥有许多属性和方法用于处理正则表达式。
RegExp.prototype.test()
test() 方法用于检测字符串中是否包含指定的模式,返回结果为布尔值。
const regex = /pattern/;
regex.test('text'); // false
RegExp.prototype.exec()
exec() 方法使用正则表达式在字符串中查找匹配,返回一个数组,包含第一个匹配项的信息。
const regex = /pattern/;
regex.exec('text'); // null
RegExp.prototype.toString()
toString() 方法可以返回正则表达式的文本表示形式。
const regex = /pattern/;
regex.toString(); // "/pattern/"
RegExp.prototype.source
source 属性返回正则表达式的文本字符串。
const regex = /pattern/gim;
regex.source; // "pattern"
RegExp.prototype.test()
test() 方法用于检测字符串中是否包含指定的模式,返回结果为布尔值。
const regex = /pattern/;
regex.test('text'); // false
RegExp.prototype.exec()
exec() 方法使用正则表达式在字符串中查找匹配,返回一个数组,包含第一个匹配项的信息。
const regex = /pattern/;
regex.exec('text'); // null
正则表达式模式
JavaScript 中的正则表达式由字母、数字和字符构成,用于匹配字符串中的数据。
匹配字符
x
:匹配字符 x.
:匹配任何字符,除了换行符 \n\d
:匹配任何数字字符,相当于 [0-9]\w
:匹配任何字母/数字字符,相当于 [a-zA-Z0-9_]\s
:匹配任何空格字符,包括空格、Tab、换行符等
匹配位置
^
:匹配字符串开头$
:匹配字符串结尾
匹配次数
*
:匹配前面的模式0次或多次+
:匹配前面的模式1次或多次?
:匹配前面的模式0次或1次{x}
:匹配前面的模式x次{x,y}
:匹配前面的模式x次到y次之间{x,}
:匹配前面的模式至少出现x次
匹配分组
()
:对其中的表达式进行分组匹配,并返回范围信息
反向引用
\number
:引用前面第 number 个分组匹配的内容
总结
正则表达式是一种强大的处理文本的工具,RegExp 对象为 JavaScript 提供了完善的正则表达式支持。开发者可以通过掌握正则表达式特性和 RegExp 对象的属性和方法,更高效地处理字符串数据。