js中正则表达式笔记
正则表达式通常用于文本搜索与文本替换。
字符串的方法search与replace可以接受正则表达式作为参数:
search(/pattern/i) // 搜索符合正则表达式的字符
replace(/pattern/i, 'new string') // 找到符合正则表达式的字符并用new string替换
上文的样例中,正则表达式用/斜线包围,可以看到末尾还有一个i,这个i是正则表达式的修饰符,表示不区分大小写。
正则表达式有三个修饰符:
修饰符 | 含义 |
---|---|
i | 不区分大小写匹配 |
g | 全局匹配(查找所有匹配的而不是找到第一个就停止) |
m | 多行匹配 |
正则表达式的两个方法:
方法名 | 介绍 |
---|---|
test | 通过模式搜索字符串,包含则返回true,不包含则返回false |
exec | 通过模式搜索字符串,并且返回符合模式的结果,没有匹配的则返回null |
let testStr = 'this is 123 that is 456'
console.log(/is/.test(testStr)) // true
console.log(/are/.test(testStr)) // false
let execStr = 'number 223'
console.log(/[0-9]/.exec(execStr)) // ["2"]
console.log(/is/.exec(execStr)) // null
正则表达式的常用模式:
模式 | 含义 |
---|---|
[abc] | 或的关系,匹配方括号内的任意一个字符 |
[0-9] | 横线表示范围,匹配0到9之间的任意一个数字 |
(x` | `y) |
+ | 匹配至少一个字符 |
* | 匹配零个或多个字符 |
? | 匹配零个或一个字符 |
. | 匹配除换行符\n外的任意一个单字符 |
\d | 匹配一个数字 |
\s | 匹配空白字符 |