声明(两种方式):
1. var reg = new RegExp("a");
2. var reg = /d/ig; (i代表不区分大小写,g代表全局检索)
函数(reg代表正则对象, str代表需要检索的字符串):
1. reg.test(str) :查找字符串中有没有str,有则返回true,否则返回false
2. reg.exec(str) :返回匹配到的值
3. str.search() :检索与正则表达式相匹配的值,并返回相应索引值,不存在则返回 -1
4. str.match() :找到一个或多个正大表达式的匹配元素,并返回一个数组。一般需要配合"g"来使用
5. str.replace() :替换与正则表达式匹配的字符串
元字符(注意区分大小写,左边为小写,右边为大写):
. :匹配单个字符,除了换行和行结束符
\w :匹配单词字符 \W :非单词字符
\d :数字 \D :非数字
\s :空白字符 \S :非空白字符
\b :单词边界 \B :非单词边界
\n :换行符
\u :汉字
n$ :任何结尾为n的字符串
^n :任何开头为n的字符串
a|b|c :匹配 a 或 b 或 c 中的任意一个
[0-9] :查找任何从0到9的数字
[a-z] :匹配从a到z的字符 [A-z](大写A到小写z) :匹配大小写的英文字符
() :1. 将括号内的元素视为正题。 2. 括号作为正则的子项,即有几个括号就有几个正则
[] :匹配方括号内的任意字符
[^abc] :匹配任何不在方括号之间的字符
量词:
n+ :匹配任何包含至少一个n的字符串
n* :任何包含0个或多个n的字符串
n? :任何包含0个或1个n的字符串
n{x} :包含x个n的序列的字符串
n{x, y} :包含x到y个n的序列的字符串
n{x,} :包含至少x个N的序列的字符串
"g"的理解:当一次检索完成时,当前检索的指针会在被检索到的位置中停留,从而下一次的检索触发时将在停留的位置开始。(不加g的话会一直从头开始检索。)
贪婪模式(默认) :尽量匹配满足条件的最长字符串,如 reg = /a*b?/g, str =abcb,会返回 "abcb",而不是"ab"
懒惰模式 :尽量匹配最短的字符串
*? :重复任意次,但尽量减少重复
+? :重复1次或更多次,但尽量减少重复
{n, m} :重复n到m次,...
{n, } :重复n次以上,...