正则
创建方式
- 通过new关键字创建
var reg=new RegExp('要匹配的元素','修饰符');
- 字面量的创建
var reg=/a/;
元字符
符号 | 含意 |
---|---|
\d | 数字字符’0’~‘9’ |
\D | 非数字字符 |
\w | 数字、字母、下划线字符:即单词字符 |
\W | 非单词字符 |
\s | 空格字符 |
\S | 非空格字符 |
\b | 单词边界//匹配的只是一个位置 这个位置的一侧是构成单词的字符 另一侧为非单词字符 字符串的开始和结束位置 |
\B | 非单词边界 |
. | 表示任意单个字符,除了换行 \n和空引号是false |
中括号/方括号 | 某个指定范围的若干字符 |
[abcde] | 匹配这个集合中的任何一个字符,其中之一 |
[ ^abcdef] | 不匹配这个集合中的任何一个字符 |
^ [abcdef] | 匹配这个集合中的任何一个字符(这个字符必须开头) |
[0-9] | 任意一个数字字符’0’~‘9’ |
[a-z] | 任意一个小字字母 |
[A-Z] | 任意一个大字字母 |
[A-z] | 任意一个字母(包括大小写及部分标点[]_`^) |
量词 :c表示字符串,m和n表示个数
符号 | 含意 |
---|---|
c+ | 表示c的个数至少1个 |
c* | 表示c的个数至少0个 |
c? | 表示c的个数是0个或者1个 |
c{m} | 表示c的个数是m个 |
c{m,n} | 表示c的个数是m个~n个范围内 |
c{m,} | 表示c的个数至少m个 |
c$: | 表示以c结尾的字符串 |
^c | 表示以c开头的字符串 |
0(?=c) | 表示0后紧跟c的字符串 |
XXX(?!c) | 表示XXX其后没有紧跟c的字符串 |
修饰符
- i:检索时不区分大小写
- g: 执行全局检索(检索时,会查找所有匹配的字符串,并不是找到一个就结束查找)在调用特定函数时有效
- m:执行多行匹配 加^和$符效果明显
方法
search():搜索,返回第一次搜索到的元素的下标,找不到返回-1
match():匹配,返回匹配成功的字符串,组成的数组,未匹配成功则返回null,以数组的形式返回结果,match函数既可以匹配普通字符串,也可以匹配正则表达式所表示的字符串
replace():替换:既可以替换普通字符串,也可以替换正则表达式所表示的字符串,对全局g敏感
split():分割:把字符串按指定参数进行拆分,返回拆分后形成的数组,对全局g不敏感