抱歉,例子举错了,上面那个结果是adg看这个例子
<html><script language = "JavaScript"> var str = "aaadabvad"; var patt = new RegExp("^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$","g");
var result;
result = patt.exec(str)
document.write(result);</script> </html>结果是
aaadabvad,d
<html><script language = "JavaScript"> var str = "aaadabvad"; var patt = new RegExp("^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$","g");
var result;
result = patt.exec(str)
document.write(result);</script> </html>结果是
aaadabvad,d
<script language = "JavaScript">
var result;
var str = "adg";
var patt = new RegExp("^(a)(d)(g)$","g");
result = patt.exec(str);
document.write(result+"<br>"); //adg,a,d,g
patt = new RegExp("^(?:a)(d)(g)$","g");
result = patt.exec(str);
document.write(result);//adg,d,g
</script>
--------
(abcd)加个括号就叫可引用的分组
(?:abcd)括号里加个?:表示不可引用
var patt = new RegExp("^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$","g");
var result;
result = patt.exec(str)
document.write(result); </script> </html>结果是
aaadabvad,d 按照你的说法,我理解是分组为([a-zA-Z0-9]|[._]){4,19}
那返回的为什么不是 去掉第一个a的aadabvad,而只是一个d?
str=aaadabvad
结果是aaadabvad,aadabvad,d三个对象
还是有个d.....
你把里面的括号去掉
"^[a-zA-Z]{1}([a-zA-Z0-9]|[._]{4,19})$"
就是aaadabvad,aadabvad
正则分组你还没理解