JavaScript中正则表达式判断匹配规则及常用方法
正则表达式是一种强大的文本匹配工具,可以用于查找、替换和验证字符串。JavaScript中的正则表达式使用RegExp对象来创建和操作。
创建正则表达式
在JavaScript中,可以使用字面量或构造函数来创建正则表达式。
字面量创建
字面量使用斜杠(/)将正则表达式括起来,后接标志(可选)。例如:
let pattern = /abc/; //创建一个匹配'abc'的正则表达式
构造函数创建
构造函数接收2个参数,第1个是正则表达式字符串,第2个是标志字符串。例如:
let pattern = new RegExp('abc'); //创建一个匹配'abc'的正则表达式
正则表达式标志
正则表达式标志是指影响正则表达式匹配行为的字符,通常包括以下3个:
- g(全局匹配):查找所有匹配项,而非在找到第1个匹配项时停止。
- i(忽略大小写):大小写不区分。
- m(多行匹配):启用多行模式, "^" 和 "$" 将匹配每行的开头和结尾。
这些标志可以单独使用,组合使用,也可以不使用。例如:
let pattern = /abc/gi; //创建一个全局、忽略大小写的正则表达式,用于匹配'abc'
正则表达式方法
RegExp对象提供了以下一些方法来操作正则表达式。
test()
test()方法用于测试字符串是否匹配正则表达式。返回值为true或false。例如:
let pattern = /abc/i;
console.log(pattern.test('Abc')); //true
console.log(pattern.test('def')); //false
exec()
exec()方法用于在字符串中匹配正则表达式。返回一个数组,该数组包含匹配的首个子串及匹配的分组(如果有的话)。如果没有匹配到,则返回null。例如:
let pattern = /([0-9]+)-([0-9]+)-([0-9]+)/;
let date = '2021-10-31';
let match = pattern.exec(date);
console.log(match); //[ '2021-10-31', '2021', '10', '31', index: 0, input: '2021-10-31', groups: undefined ]
match数组包含整个匹配项和捕获到的分组, match[0]为整个匹配项,match[1]为第1个分组,以此类推。
常用正则表达式语法
以下是一些常用的正则表达式语法:
字符类
字符类用于匹配一个字符的集合:
- [abc]:匹配a、b或c中的任意1个字符。
- [a-z]:匹配a到z中的任意1个字符。
- [^abc]:匹配不是a、b或c中的任意1个字符。
- [^a-z]:匹配不是a到z中的任意1个字符。
例如:
let pattern = /a[bcd]e/i;
console.log(pattern.test('abcde')); //true
console.log(pattern.test('abe')); //false
量词
量词用于指定模式出现的次数:
- +:匹配1个或多个。
- *:匹配零个或多个。
- ?:匹配零个或1个。
- {n}:匹配n个。
- {n,m}:匹配n到m个。
- {n,}:匹配n个或多个。
例如:
let pattern = /[0-9]+/g;
console.log('hello 123 world 456'.match(pattern)); // [ '123', '456' ]
边界
边界用于匹配字符串的边缘:
- ^:匹配行的开头。
- $:匹配行的结尾。
- \b:匹配单词边界。
- \B:匹配非单词边界。
例如:
let pattern = /^a/g;
console.log(pattern.test('abc')); //true
console.log(pattern.test('bbc')); //false
分组和引用
分组用于将一组字符当作整体进行匹配:
- ():将括号内的字符当作一组。
- \n:引用第n个分组。
例如:
let pattern = /(\d{3})-(\d{3,8})/;
let phone = '010-12345678';
let match = pattern.exec(phone);
console.log(match); // [ '010-12345678', '010', '12345678', index: 0, input: '010-12345678', groups: undefined ]
这里用括号将区号和电话号码分别分组,并通过引用分组号码来获取这两个部分。
总结
本文详细讲解了JavaScript中正则表达式判断匹配规则及常用方法。了解正则表达式的基本语法及用法,可以帮助我们更方便、高效地操控字符串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中正则表达式判断匹配规则及常用方法 - Python技术站