javaScript基础 05
1. 正则表达式
正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。
1.1 创建正则表达式
//字面量 |
1.2 特殊字符
字符 | 含义 |
---|---|
\d | 匹配一个数字 |
\D | 匹配一个非数字字符 |
\s | 匹配一个空白符(包括空格,制表符) |
\S | 匹配一个非空白字符 |
\w | 匹配一个单字字符(字母或数字或下划线) |
\W | 匹配一个非单字字符(不是字母,数字,下划线) |
限定符
字符 | 含义 |
---|---|
^ | 匹配输入的开始 |
$ | 匹配输入的结束 |
* | 匹配前一个表达式 0 次或多次。等价于 {0,} |
+ | 匹配前面一个表达式 1 次或者多次。等价于 {1,} |
? | 匹配前面一个表达式 0 次或者 1 次。等价于 {0,1} |
. | 默认匹配除换行符之外的任何单个字符 |
组合符
字符 | 含义 |
---|---|
x(?=y) | 匹配’x’仅仅当’x’后面跟着’y’.这种叫做先行断言 |
(?<=y)x | 匹配’x’仅当’x’前面是’y’.这种叫做后行断言 |
x(?!y) | 仅仅当’x’后面不跟着’y’时匹配’x’,这被称为正向否定查找 |
(?<!y)x | 仅仅当’x’前面不是’y’时匹配’x’,这被称为反向否定查找 |
x|y | 匹配‘x’或者‘y’ |
{n} | n 是一个正整数,匹配前面一个字符刚好出现了 n 次 |
{n,} | n是一个正整数,匹配前一个字符至少出现了n次 |
{n,m} | n 和 m 都是整数。匹配前面的字符至少n次,最多m次 |
[xyz] | 一个字符集合。匹配方括号中的任意字符 |
[^xyz] | 一个反向字符集, 它匹配任何没有包含在方括号中的字符 |
[\u4e00-\u9fa5] | 匹配汉字 |
标志
标志 | 描述 |
---|---|
g | 全局搜索 |
i | 不区分大小写 |
2. 正则匹配
regexp.test(str)
方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配;
返回值:如果正则表达式与指定的字符串匹配 ,返回true
;否则false
let str = 'hello world!'; |
3. 正则提取
str.match(regexp)
方法检索返回一个字符串匹配正则表达式的结果
返回值:
- 如果使用g标志,则将返回与完整正则表达式匹配的所有结果的数组
- 如果未使用g标志,则仅返回第一个完整匹配的数组
let paragraph = 'This is lazy dog. It barked.'; |
4. 正则替换
str.replace(substr | regexp, newSubStr | function)
replace() 方法返回一个由新值替换旧值后产生的新字符串。替换模式可以是一个字符串或者一个正则表达式,新值可以是一个字符串或者一个每次匹配都要调用的回调函数
返回值:一个由替换规则替换后的新字符串
当第二个参数为回调函数时,当匹配执行后,该函数就会执行。 函数的返回值作为替换字符串。另外要注意的是,如果第一个参数是正则表达式,并且其为全局匹配模式,那么这个方法将被多次调用,每次匹配都会被调用。
回调函数的常用参数如下
参数名 | 代表的值 |
---|---|
match |
匹配的子串 |
p1,p2, ... |
假如replace()方法的第一个参数是一个正则表达式,则代表第n个括号匹配的字符串 |
var str = '10101'; |
评论