创建方式
1、实例创建
var reg = new RegExp('abc');
var reg = new RegExp('abc', 'img');
2、字面量
var reg=/abc/;
var reg=/abc/img;
说明
pattern:正则表达式
flags:标识(修饰符)
标识主要包括:
1. i 忽略大小写匹配
2. m 多行匹配,即在到达一行文本末尾时还会继续寻常下一行中是否与正则匹配的项
3. g 全局匹配 模式应用于所有字符串,而非在找到第一个匹配项时停止
区别
- 实例创建方式可以进行字符串拼接,字面量不行
var regParam = 'cm';
var reg1 = new RegExp(regParam+'1');
var reg2 = /regParam/;
console.log(reg1); // /cm1/
console.log(reg2); // /regParam/
- 实例创建需要转义特殊字符, 字面量不需要
var reg1 = new RegExp('\d'); // /d/
var reg2 = new RegExp('\\d') // /\d/
var reg3 = /\d/; // /\d/
元字符
1、特殊含义元字符
符号 | 说明 |
---|---|
\d | 0-9之间的任意一个数字 \d只占一个位置 |
\w | 数字、字母 、下划线 0-9 a-z A-Z _ |
\s | 空格或者空白等 |
\D | 除了\d |
\W | 除了\w |
\S | 除了\s |
. | 除了\n之外的任意一个字符 |
\ | 转义字符 |
| | 或者 |
() | 分组 |
\n | 匹配换行符 |
\b | 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数 |
^ | 限定开始位置 => 本身不占位置 |
$ | 限定结束位置 => 本身不占位置 |
[a-z] | 任意字母 []中的表示任意一个都可以 |
[^a-z] | 非字母 []中^代表除了 |
[abc] | abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符 |
2、限定符 - 代表次数的量词元字符
字符 | 描述 | 例子 |
---|---|---|
* | 0或多次,等价于{0,} | 'ab*' 能匹配 "a" 和 "abb" |
+ | 1或多次,等价于 {1,} | 'ab+' 能匹配 "ab" 和 "abb",不能匹配 "a" |
? | 0次或1次,等价于 {0,1} | 'ab(cd)?' 可以匹配 "ab" 、 "abcd" 中的 "abcd" 、 "adxx" 中的 "ab" |
{n} | 正好n次 | 'o{2}' 不能匹配 "aob" 中的 'o',但是能匹配 "food" 中的两个 o |
{n,} | n到多次 | 'o{2,}' 不能匹配 "aob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 |
{n,m} | n次到m次 | 'o{1,3}' 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。逗号和两个数之间不能有空格。 |