function test(){
var text="index.aspx?test=1&ww=2&www=3";
var re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re =new RegExp( "\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");//另外一中写法
var result= re.exec(text); // var result= re.test(text)
if(result)
{
alert("ok");
alert(result); // 是?test=1&ww=2&www=3,ww=2&
alert(result[0]+",0");//是?test=1&ww=2&www=3
alert(result[1]+",1");//是ww=2&
}else
{
alert("err");
}
}
使用正则表达式的主要有字符串的方法match,正则表达式的方法exec,test
正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假,如果只是单纯的判断,不需要其他的处理,可以使用尤其是验证时。
正则表达式方法exec测试给定的字符串是否满足正则表达式,返回匹配到的字符串,如果没有匹配的则返回null,和test基本一致
其中 \w{1,}的意思 /w匹配A-Z a-z 0-9 {1,}匹配1次以上
举例:
(\w)\1{4,}和(\w){4,}\1和(\w)\1{4,}\1 在匹配 "aa bbbb abcdefg ccccc 111121111 999999999" 时的困惑
(\w)\1{4,}匹配 ccccc 999999999 先匹配(\w ) \1反向引用第一个括号里面匹配的 {4,}对反向引用的重复四次以上
(\w){4,}\1匹配 ccccc 111121111 999999999 匹配(\w)4次以上 然后再 反向引用第一个
(\w)\1{4,}\1匹配 999999999 先匹配\w 引用第一个并重复四次以上 再反向取第一个