📅  最后修改于: 2023-12-03 15:02:24.696000             🧑  作者: Mango
JavaScript 正则表达式是一种独特的文本处理方式,用于在文本中匹配或搜索特定的模式。JavaScript 正则表达式是由字面量或者 RegExp 对象表示的。它可以用于字符串的搜索、替换以及字符串的验证等操作。本文将为你介绍常见的 JavaScript 正则表达式用法。
使用字面量创建正则表达式
const regex = /pattern/;
或者
const regex = new RegExp('pattern');
使用正则表达式修饰符
字面量和 RegExp
构造器两种方式都可以使用正则表达式修饰符,例如:
const regex1 = /pattern/i; //不区分大小写
const regex2 = new RegExp('pattern', 'i'); //不区分大小写
const regex3 = /pattern/g; //全局匹配
const regex4 = new RegExp('pattern', 'g'); //全局匹配
RegExp.test()
test()
方法返回一个布尔值,表示目标字符串是否匹配正则表达式的模式。例如:
const regex = /hello/;
console.log(regex.test('hello world')); //true
console.log(regex.test('hi world')); //false
String.match()
match()
方法会在字符串中查找与正则表达式匹配的内容,并返回一个数组,包含所有匹配的子串。例如:
const regex = /hello/;
const str = 'hello world';
console.log(str.match(regex)); //["hello"]
String.replace()
replace()
方法用一个字符串或函数替换与正则表达式匹配的子串。例如:
const regex = /hello/;
const str = 'hello world';
console.log(str.replace(regex, 'hi')); //"hi world"
i
i
标志表示不区分大小写。例如:
const regex = /hello/i;
console.log(regex.test('HELLO world')); //true
g
g
标志表示全局匹配。例如:
const regex = /hello/g;
const str = 'hello hello world';
console.log(str.match(regex)); //["hello", "hello"]
m
m
标志表示多行匹配。例如:
const regex = /^hello/m;
const str = 'hello\nworld';
console.log(regex.test(str)); //true
[]
[]
表示一个字符集,匹配其中任意一个字符。例如:
const regex = /[abc]/;
console.log(regex.test('a')); //true
console.log(regex.test('d')); //false
a-z
表示匹配从 a
到 z
之间任意一个字符。例如:
const regex = /[a-z]/;
console.log(regex.test('a')); //true
console.log(regex.test('A')); //false
^
^
表示否定,匹配字符集中除了指定字符以外的任意一个字符。例如:
const regex = /[^0-9]/;
console.log(regex.test('a')); //true
console.log(regex.test('7')); //false
*
表示匹配前面字符或子表达式 0 次或多次。例如:
const regex = /a*/;
console.log(regex.test('')); //true
console.log(regex.test('aaa')); //true
console.log(regex.test('bcd')); //false
+
表示匹配前面字符或子表达式 1 次或多次。例如:
const regex = /a+/;
console.log(regex.test('')); //false
console.log(regex.test('aaa')); //true
console.log(regex.test('bcd')); //false
?
?
表示匹配前面字符或子表达式 0 次或 1 次。例如:
const regex = /a?/;
console.log(regex.test('')); //true
console.log(regex.test('a')); //true
console.log(regex.test('bcd')); //false
{}
{n}
表示匹配前面字符或子表达式 n 次。例如:
const regex = /a{3}/;
console.log(regex.test('')); //false
console.log(regex.test('aaa')); //true
console.log(regex.test('aa')); //false
{n,}
表示匹配前面字符或子表达式至少 n 次。例如:
const regex = /a{3,}/;
console.log(regex.test('')); //false
console.log(regex.test('aaa')); //true
console.log(regex.test('aa')); //false
{n,m}
表示匹配前面字符或子表达式至少 n 次,至多 m 次。例如:
const regex = /a{3,5}/;
console.log(regex.test('')); //false
console.log(regex.test('aaa')); //true
console.log(regex.test('aaaaa')); //true
console.log(regex.test('a')); //false
JavaScript 正则表达式是一种强大的文本处理工具。本文介绍了它的基本语法、匹配、替换以及常见的字符集和限定符。在实际开发中,适当地运用正则表达式可以提高代码的处理效率和质量。