正则表达式规则的初学习
2019-05-23 本文已影响0人
叫我汪汪
JS使用方法
创建
var reg = new RegExp('abc', 'i');
var reg = /abc/i;
使用方法
正则对象方法
test:返回true或false
exec:返回一个数组,其中存放匹配的结果,如果未找到匹配,则返回值为null
字符串函数方法
search:返回字符串中第一个与正则相匹配的子串的起始位置,如果没有找到则返回-1
match:找到一个或多个正则表达式的匹配
replace:替换与正则表达式匹配的子串
split:把字符串分割为字符串数组
修饰符
i:表示忽略大小写。
g:表示全局匹配,查找所有匹配而非在找到第一个匹配后停止。
m:多行匹配。
限定符
前面的子表达式的匹配次数, 以 'ac abc abbc abbbc abbbbc' 为例
*:零次或多次
/ab*c/ig ==> ac abc abbc abbbc abbbbc
+:一次或多次
/ab+c/ig ==> abc abbc abbbc abbbbc
?:零次或一次
/ab?c/ig ==> ac abc
{n}:匹配n次
/ab{2}c/ig ==> abbc
{n,}:至少匹配n次
/ab{2,}c/ig ==> abbc abbbc abbbbc
{n,m}:至少匹配n次且最多匹配m次
/go{1,3}d/ig ==> abbc abbbc
字符匹配符
以'aiod acd abd add aed afd ahd $%#@ 12345678 asdfghh'为例
[xyz]:字符集合。匹配所包含的任意一个字符
/a[abc]d/ig ==> acd abd
[^xyz]:负值字符集合。匹配未包含的任意字符
/a[^abc]d/ig ==> add aed afd ahd asd
[a-z]:字符范围。匹配指定范围内的任意字符
/a[a-z]d/ig ==> acd abd add aed afd ahd asd
[^a-z]:负值字符范围。匹配任何不在指定范围内的任意字符
/a[^a-f]d/ig ==> ahd
\d:匹配一个数字字符
/\d+/ig ==> 12345678
\D:匹配一个非数字字符
/\D+/ig ==> aiod acd abd add aed afd ahd $%#@ asdfghh
\w:匹配包含下划线的任何单词字符。等价于[a-z0-9A-Z_]
/\w+/ig => "aiod", "acd", "abd", "add", "aed", "afd", "ahd", "12345678", "asdfghh"
\W:匹配任何非单词字符。等价于[^a-z0-9A-Z_]
/\W+/ig => " ", " ", " ", " ", " ", " ", " $%#@ ", " "
\s:匹配任何空白字符
/\s+/ig ==> " ", " ", " ", " ", " ", " ", " ", " ", " "
\S:匹配任何非空白字符
/\S+/ig ==> 全部
·:匹配除”\n”之外的任何单个字符
这个不举例
定位符
^:匹配输入字符串的开始位置
/^\d+/ig => 一个或者多个数字在开头处
$:匹配输入字符串的结束位置
/.+\d{3}$/ig => 最少3个数字在结尾处
\b:匹配一个单词边界,也就是单词和空格间的位置
/\bg\w+/g => 以g开头的包含下划线的任何单词
/\w+d\b/g => 以g结尾的包含下划线的任何单词
\B:匹配非单词边界
/\Bg\w+/g => 不以g开头的包含下划线的任何单词
/\w+d\B/g => 不以g结尾的包含下划线的任何单词
转义符(\)
以'++++++-*/%'为例
/\++/g => 匹配一个或多个+符号
选择匹配符(|)
/a(xxx|bbb)c/g => 等同于或逻辑