正则匹配
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //分组返回 2 var pattern=/^[a-z]+\s[0-9]{4}$/; 3 var str='google 2012'; 4 alert(pattern.exec(str)); //返回一个包含字符串的数组 5 6 7 var pattern=/^[a-z]+/; //只匹配到字母 8 var str='google 2012'; 9 alert(pattern.exec(str)); //只返回google的字符串数组 10 11 12 var pattern=/^([a-z]+)\s([0-9]{4})$/; //使用了分组 13 var str='google 2012'; 14 var a= pattern.exec(str); 15 // alert(a.length); //3 16 alert(a[0]); //返回匹配到的整个字符串 17 alert(a[1]); //返回匹配到的第一个分组的字符串 18 alert(a[2]); //返回匹配到的第二个分组的字符串 19 20 21 //捕获性分组和非捕获性分组 22 23 var pattern=/(\d+)([a-z])/; //这个叫做捕获性分组,所有的分组都捕获返回 24 var str='123abc'; 25 var a=pattern.exec(str); 26 //a[0]返回123a 27 //a[1]返回123 28 //a[2]返回a 29 30 31 var pattern=/(\d+)(?:[a-z])/; //非捕获性分组,只需要在不需要捕获返回的分组加上 ?: 32 var str='123abc'; 33 var a=pattern.exec(str); 34 alert(a[1]); 35 //a[0]返回123a 36 //a[1]返回123 37 38 39 //使用分组嵌套 40 41 var pattern=/(a?(b?(c?)))/; //嵌套分组,从外往内获取 42 var str='abc'; 43 var a=pattern.exec(str); 44 //第一步:a[0],整个匹配到的字符串abc 45 //第二步:a[1],匹配第一个分组(a?(b?(c?))) abc 46 //第三步:a[2],匹配第二个分组(b?(c?)) bc 47 //第四步:a[3],匹配第三个分组(c?) c 48 49 50 //使用前瞻捕获 51 var pattern=/goo(?=gle)/; //goo后面必须是gle才能返回goo,需要注意返回的是goo而不是google 52 // var str='google'; 53 var str='goobbb'; 54 alert(pattern.exec(str)); 55 56 57 //使用特殊字符匹配 58 var pattern=/\[/; //用\符号来转义正则里的特殊字符,才能匹配 59 var str='['; 60 alert(pattern.exec(str)); 61 62 63 //使用换行模式 64 var pattern=/^\d+/gm; //限定了首匹配,并且开启换行模式 65 // var pattern=/\d+/g; 66 var str='1.baidu\n2.google\n3.bing'; 67 alert(str.replace(pattern,'#'));
高否?富否?帅否?
否?
滚去学习!