全局和大小写同时匹配
var re = new RegExp("a","gi");
var re1 = /a/gi;
.exec()使用子匹配,用()来创建子匹配
var str = "Ubuntu 8.10";//取出主版本号和次版本号
var re = /^[a-z]+s+(d+).(d+)$/i;//这里的两个(d+)就是子匹配
var arr = re.exec(str);//当字符串不匹配re时返回null
alert(arr[0]);//完整的str
alert(arr[1]);//8
alert(arr[2]);//10
字符串.replace(re)用来替换空白字符
var str = "some some some f";
var re = /s+/g;
alert(str.replace(re,"#"));//some#some#some#
字符串.split(re)用来替换不同的分隔符
var str = "a_bc-d";
var re = /[^a-z]/i;//匹配除字母外所有字符
alert(str.split(re));//返回["a","bc","d"]
字符串.match(re)匹配并返回结果数组
var str = "one two three four";
var re = /[a-z]*/gi; //表示单词边界
alert(str.match(re)); //one,two,three,four
re.source属性 返回正则表达式"模式"的文本的复本
var re = /[a-z]/i;
alert(re.source); //输出结果 [a-z]
alert(re); //输出结果 /[a-z]/i,相当于re.toString
re.lastIndex属性 指被查找字符串中下一次成功匹配的开始位置,默认值-1,可被exec和test方法修改
var re = /[A-Z]/g;
var str = "Hello,World!";
var arr = re.exec(str); //H
alert(re.lastIndex); //1
arr = re.exec(str); //W
alert(re.lastIndex); //7
当匹配失败(后面没有匹配),或lastIndex值大于字符串长度时,再执行exec方法会将lastIndex设为0(开始位置)
var re = /[A-Z]/;
var str = "Hello,World!";
re.lastIndex = 120;
var arr = re.exec(str);
alert(re.lastIndex);//0
用re.exec()+re.lastIndex获取字符串中的数字
var String = ""; var re = /d+/g; var str="adf0sdf1asdf2sff3asdfas4asfdafd5asfasf6fsdafasf7asdfas8asdf9asa"; String = String + re.exec(str); while(re.lastIndex != 0){ var arr = re.exec(str); if(arr != null){ String = String + arr; } } alert(String); //0123456789