一、什么是正则表达式
正则表达式,简称正则,是指一个用来描述符合某个规则的字符串的表达式。其可以快速检索、替换文本、验证数据格式、提取数据等。
正则表达式有自己的语法规则,常用的符号有:点号(.)、星号(*)、加号(+)等等。RegExp是JavaScript语言内置的正则表达式对象,可以方便地进行正则表达式的匹配,匹配结果可以用数组存储。
二、正则表达式的基本用法
在JavaScript中,使用正则表达式需要先将其包装成一个RegExp对象。包装方式有两种:字面量方式和构造函数方式。使用字面量方式可以在代码中直接表示正则表达式,而使用构造函数方式则可以在运行时从字符串中解析出正则表达式。
// 字面量方式
let reg1 = /a/;
// 构造函数方式
let reg2 = new RegExp('a');
其中,两者表达结果相同。
三、正则表达式缩写
对于一些常见的字符,我们可以使用缩写的方式来表示,以简化我们的代码。
常用缩写:
.: 匹配除换行符(\n)以外的任意字符\d: 匹配数字字符,即0-9之间的数字\D: 匹配非数字字符\w: 匹配字母,数字和下划线字符\W: 匹配非字母和数字字符,即特殊字符\s: 匹配空格和制表符\S: 匹配非空格和制表符的字符
let reg = /\d/; // 匹配数字
// 判断字符串是否包含数字
if (reg.test('Hello World1')) {
console.log('包含数字');
} else {
console.log('不包含数字');
}
四、正则表达式的筛选应用
我们可以使用正则表达式来筛选出符合某些规则的字符串,其中最常见的要数筛选关键字了。
下面是一个用正则表达式筛选关键字的例子。
// 待筛选字符串 let str = 'this is a test string for regex'; // 关键字 let keyWord = 'regex'; // 创建正则表达式对象 let reg = new RegExp(keyWord, 'ig'); // 筛选出所有包含关键字的字符串 let results = str.match(reg); console.log(results); // ["regex"]
五、正则表达式中的特殊字符
在正则表达式中,有一些特殊字符,它们有着不同的含义,在使用时需要注意。
常见特殊字符:
^: 匹配输入字符串开始的位置$: 匹配输入字符串结束的位置*: 匹配前面的字符零次或多次+: 匹配前面的字符至少一次或多次?: 匹配前面的字符零次或一次|: 匹配多个模式中的一个,相当于”或”[]: 匹配包含在中括号内的任意一项{n,m}: 匹配前面字符至少n次,最多m次
// 匹配以 hello 开头的字符串
let reg1 = /^hello/;
// 匹配以 world 结尾的字符串
let reg2 = /world$/;
// 匹配包含 hello 或 world 的字符串
let reg3 = /hello|world/;
// 匹配长度在 3~5 之间的字符串
let reg4 = /^.{3,5}$/;
六、正则表达式的高级用法
除了基本用法,正则表达式还有更高级的用法,如懒惰匹配、正则表达式嵌套、断言等等。
这里举一个懒惰匹配的例子。懒惰匹配是指正则表达式尽可能地少匹配字符,其作用在于有些字符串的匹配结果可能会受到后面的字符影响,比如出现重复字符。在这种情况下,懒惰匹配可以最小化匹配结果的干扰。
// 贪婪匹配
let reg1 = /a.+/;
console.log('abcdabcde'.match(reg1)); // ["abcde"]
// 懒惰匹配
let reg2 = /a.+?/;
console.log('abcdabcde'.match(reg2)); // ["abc"]
七、结语
以上就是关于正则表达式的一些基本知识和应用,学会使用正则表达式不仅可以提高我们的编程效率,也可以让我们写出更加优雅和简洁的代码。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/152612.html
微信扫一扫
支付宝扫一扫