正则基本符号:
量词:
量词 | 使用说明 |
---|---|
{ n, } | 表示出现n次级n次以上 |
{ n } | 表示出现n次 |
{ n, m} | 表示出现n到m次 |
? | 表示出现零次或一次 |
+ | 表示出现一次及一次以上 |
* | 表示出现零次及零次以上 |
元字符:
元字符 | 使用说明 |
---|---|
\w | 表示数字、字母、下划线 |
\W | 表示除了数字、字母、下划线 |
\d | 表示0-9之间的数字 |
\D | 表示除了0-9之间的数字 |
\s | 表示空格、制表符、换行符 |
\S | 表示除了空格、制表符、换行符 |
\b | 表示单词边界 |
\B | 表示除了单词边界 |
\t | 表示制表符(一个TAB键:四个空格) |
\n | 表示换行符 |
\ | 表示转义符 |
. | 表示除了\n(换行符)之外的任意字符 |
\ . | 表示小数点(单独写点\ .写不出来只能中间加一个空格,真实中没有空格) |
[xzy] | 表示 x 或 z 或 y 中的任意字符 |
a|b | 表示 a 或 b |
[a-z] | 表示 a-z 之间小写英文字母中的任意一个 |
[A-Z] | 表示A-Z之间大写英文字母中的任意一个 |
[0-9] | 表示 0-9 之间任意一个数字 |
[ \u4e00-\u9fa5 ] | 表示所有汉字 |
^n | 表示以n开始 |
m$ | 表示以m结尾 |
^a$ | 表示以a开头还要以a结尾 |
( ) | 表示分组符号 |
( ?: ) | 表示只匹配不捕获 |
( ?= ) | 表示正向预查 |
( ?! ) | 表示负向预查 |
[abcs] | 表示abcs其中一个本身意思 |
修饰符:
修饰符 | 使用说明 |
---|---|
i | 表示忽略大小写 |
m | 表示进行多行匹配 |
g | 表示进行全局匹配 |
创建正则的方式:
-
字面量创建
let str='teal' let reg=/\w/;//匹配字符串中的数字、字母和下划线 console.log(reg.test(str));//true
-
构造函数创建
let str='teal'; let reg=new RegExp("\\w"); console.log(reg.test(str));//true
正则中常用的方法
-
test
-
effect: 验证字符串是否存在
-
params: value
-
return: false | true
let reg=/[a-z]/;//验证a-z之间的英文 console.log(reg.test('teal'));//true; console.log(reg.test('1234'));//false
-
-
exec
-
effect: :验证符合条件的值
-
params: value
-
return: 返回一个数组/null,数组中第一项是匹配的字符串,第二项匹配字符串的位置,第三项是原始字符串,第四项是
let reg=/[a-z]/; console.log(reg.exec('teal'));//["t", index: 0, input: "teal", groups: undefined] console.log(reg.exec(2222));//null
-
-
match
-
effect:验证符合条件所有的值
-
params: reg
-
return:返回一个数组/null,数组中包含所有符合条件的值。
let reg=/(good)/g; console.log('good good study day day up!'.match(reg));//["good", "good"] console.log('day day up!'.match(reg));//null
-
-
replace
-
effect:替换指定的字符串
-
params: reg,value
-
return:替换后的字符串
let reg=/o/g; console.log('good good study day day up!'.replace(reg,'a'));//'gaad gaad study day day up!'
-
-
search
-
effect:查询时字符串中是否包含该字符
-
params: reg
-
return:返回第一个位置得索引,没找到返回-1
console.log('abc'.search(/b/g));//1 console.log?('abbc'.search(/d/));//-1
-