1.正则表达式中括号的特别作用之一/[a-z]+(\d+)/这里括号的作用是对后面的数据进行提取匹配(假如我们真正关心的是每个匹配尾部的数字)。如果用exec后面有几个()分组都能够读出来。 如果是用match则后面只能有一个()否则将不会显示出后面要匹配的结果;括号的特别作用之二允许我们在同一正则表达式后部引用前面的子表达式。通过字符“\”后加一位或多位数字实现的。数字指定了带括号的子表达式在正则表达式中的位置(以左括号作为依据)
2.要求开始与结束相匹配使用/(['"])[^'"]*\1/ .如下例
var str = "\"abcd12345\"";
var ey = /(['"])[^'"]*\1/
var ch = str.match(ey);
//这里不仅仅是匹配首尾一致、还会将首尾一直的双引号或者单引号输出来。
3.在javascript1.5中,无须创建带编码的引用就可以将正则表达式中的项目进行组合。它不是以“(”和“)”对项目进行分组,而以“(?:”和")"来分组 例如:/([Jj]ava(?:[Ss]cript)?)\sis\s(fun\w*)/ 这里在正则表达式中,\2引用了与(fun\w*)匹配的文本而不是(?:[Ss]cript)的文本
4.(?=p)正前向声明,要求接下来的字符都与模式p匹配,但是不包括匹配中的那些字符
(?!p)反前向声明,要求接下来的字符不与模式p匹配
(?:p)不创建引用,就是分组不会被后头解析。