JS的正则表达式有非常重要的作用:
可以用两种方式实例化RegExp类型的对象。
方法一,构造函数实例化: var myRegex = new RegExp("\\w+", "igm "); //\w+为实际正则表达式,注意第一个\为转义之用,igm分别表示忽略大小写,全局搜索,多行搜索,这个后面会解释 。
方法二,直接赋值法: var myRegex = /\w+/igm; //效果与上一个语句一样,只是这里不需要用转移字符,原正则表达式是什么样子就是什么样子,igm就和前面例子的igm作用一样具体用什么方式看大家喜好了,个人觉得第二种方式写的正则比较好读些,RegexBuddy帮助文档也是推荐第二种方式。
RegExp对象包含以下一些操作: exec(string str):执行正则表达式匹配,并返回匹配结果,根据MSDN给出的例子运行结果看,exec每次执行都是从上次直接的匹配结束位置开始,并且返回的值似乎是RerExp对象,而RegexBuddy给出的解释是返回一个数组,但是没有给出详细例子,我觉得还是根据试验结果为依据比较可靠。 compile(string regex, string flags):预编译正则表达式以使其运行更快,经过测试的确预先编译后效率有明显提升。
regex参数为正则表达式,flags可以为以下3个值的组合:
g – 全局搜索,我的试验结果是不加g标志就只能匹配第一个符合条件的字符串
i – 忽略大小写
m – 多行搜索,似乎默认已经是多行搜索了
 
test(string str):如果str匹配正则表达式返回true,否则返回false,这个类似string对象的match方法 RegExp对象包含以下一些属性:
index:字符串中第一个匹配表达式的位置,初始为-1
input:正则表达式的匹配目标,注意是只读的
lastIndex:下一个匹配表达式的位置,原话是(Returns the character position where the next match begins in a searched string.)也不知道有没有翻译错,这个属性我没有用到。 lastMatch:最后一个匹配表达式的字符串
lastParen:最后一个匹配的子匹配串,比如正则表达式里有多个以()分组的匹配项,lastParen表示最后一组所匹配的结果
leftContext:从目标字符串的开头到last match的起始位置的所有字符。
rightContext:从last match的结束位置到整个目标字符串的结束位置的所有字符。
$1…$9:表示第n组匹配的结果,这个在正则表达式里有多个以()分组时有用.
接下来讲讲,JScript中String对象与正则表达式有关的操作:
match(string regex):接受一个正则表达式,并返回该字符串是否与这个表达式匹配。
replace(srting regex, string str):将与正则表达式匹配的子字符串替换为str.
例子:
<script >
                var s;                //声明变量
                var re = new RegExp("d(b+)(d)","ig");//确定正则表达式,以()为单位,该正则有两组
                var str = "cdbBdbsbdbdz";
                var arr = re.exec(str);//执行它,这里返回的是数组
                alert(arr);
                s = "$1 contains:" + RegExp.$1 + "\n";
                s += "$2 contains:" + RegExp.$2 + "\n";
                s += "$3 contains:" + RegExp.$3;               //这一行就没有,因为只有两组
               alert(s);         
</script>