在JS中正则表达式的定界符就是一对/,全部写在/以内的都是正则的内容。数组
注意:在其余语言中可使用其余特殊符号做为正则定界符。测试
原子是组成正则表达式最基本的单位。任何一个正则表达式至少包含一个原子。code
元字符的做用就是用来修饰原子,使得正则表达式的结构更加灵活可靠。元字符也叫做原子修饰符。regexp
[]
原子列表用户能够经过原子列表的方式自定义指定范围的字符。原子列表依然表示指定范围字符中的一个字符。对象
注意: 原子列表表示多个字符中的一个字符。内存
[^]
排除列表排除列表是原子列表的提高,能够限定选取制定字符以外的字符中的一个。字符串
\*
任意数量的指定原子\+
一个数量以上的原子?
表示0个或1个原子{}
圈定范围{m} 表示m个原子io
{m,} 表示m个以上的原子console
{m,n} 表示m-n个数量之间原子
^
表示字符串必须以正则中指定的字符开头!$
表示字符串必须以正则中指定的字符结尾!^正则表达式$ 精确匹配模式
\b
单词边界表示可以用来分割单词的字符, 空格,标点符号,特殊字符(除了数字和字母)
\B
非单词边界表示不可以用于分割单词的字符。 数字和字母 注意:词边界和非词边界通常只用于英文正则中。
\n
以外的任意一个字符注意:若是正则中须要使用字符。 必须进行转义 \。 除此以外,任意在正则表达式中又意义的字符要当作普通字符使用都必须进行转义操做(。 * + ? [] () ^ $)
()
括号元字符|
或运算元字符i
忽略英文大小写g
全局匹配模式m
多行匹配模式.*?
贪婪模式正则在进行匹配时,从开始位置查找最远的结束位置,这种模式称之为贪婪模式。
在进行HTML标签相似内容获取时,贪婪模式会致使整个内容的返回,须要使用非贪婪模式。
固定的书写规则 : .*? 这种方式就是非贪婪模式
?:
取消暂存内容的做用()
最前面 加上?:
字符串 例如 (?:/\d/)
var 变量 = /正则规则/模式修正符; var a = /\d/g;
var 变量 = new RegExp('正则规则','模式修正符'); var a = new RegExp('\\d', 'g');
\\
转义
var a = /\d/g; var b = a.source; console.log(b);
输出:\d
获取结果不包括在正则表达式文本中使用的分隔斜线,而且它不包括在“g”,“i” 和“m” 属性。
exec(字符串)
;exec()
和match()
的区别:
exec()
和match()
除了操做格式不同,结果是同样的。exec()
依然进行一次匹配,只不过在上次匹配的内容以后开始一次新的匹配match()
是一次性返回字符串中全部符合正则内容组成的数组。它的参数是一个字符串,用test( )对某个字符串进行检测,该方法仅仅是用于测试正则内容是否在字符串中出现,匹配成功返回true,匹配失败返回false。