推荐文章http://www.cnblogs.com/rubylouvre/archive/2010/03/09/1681222.html
1. .*与.*?的区别
var re1 = /.*bbb/gi;//贪婪
var re2 = /.*?bbb/gi;//惰性
// var re3 = /.*+bbb/g;//支配性,javascript不支持,IE与所有最新的标准浏览器都报错
alert(re1.test("abbbaabbbaaabbbb1234")+"");//true
alert(re1.exec("abbbaabbbaaabbbb1234")+"");//null
alert("abbbaabbbaaabbbb1234".match(re1)+"");//abbbaabbbaaabbbb
alert(re2.test("abbbaabbbaaabbbb1234")+"");//true
alert(re2.exec("abbbaabbbaaabbbb1234")+"");//abbb
alert("abbbaabbbaaabbbb1234".match(re2)+"");//abbb,aabbb,aaabbb
(例子就直接用了)
.*为贪婪模式,整个将字符串吃下,然后从最后一位来匹配,直到匹配成功,输出。
.*?为懒惰模式,一个个吃,直到匹配成功,再继续匹配,所以有多个字符串
2.
/[\u4e00-\u9fa5]/用于匹配单个汉字。
3.
alert(A.test())检查匹配
alert(A.exec())检查一次,输出第一个成功的字符串(懒惰匹配),若是贪婪匹配,一次不成功就输出NULL了
alert(B.march(A))输出所有匹配项