
正則部分:
1、"(^|&)":從頭開始匹配‘&’
2、"=([^&]*)(&|$)":=([^&]*)就是匹配=后面零個或多個不是&的字符,直至碰到第一個&為止,(&|$)意思就是匹配最后一個&,在正則表達(dá)式中,增加一個()代表著匹配數(shù)組中增加一個值
3、"i":即ignore,忽略大小寫
其余部分:
1、window.location.search:取url中“?”后面的值,包括"?",取到的值為:?id=6&name=xiaoha&sex=male
2、window.location.search.substr(1):截取第一個字符后面的字符串,即去掉"?",取到的值為:id=6&name=xiaoha&sex=male
PS:substr()函數(shù)的使用:stringObject.substr(start,length):start必需,表開始截取的位置;length可選,表截取長度
3、match(reg):匹配正則,匹配后數(shù)組中應(yīng)包含4個值. 在getUrlParams("id")函數(shù)中,此時 r 獲取到的數(shù)組應(yīng)該是 ["id=6&", "", "id", "&"] ;在getUrlParams("name")函數(shù)中,此時 r 獲取到的數(shù)組應(yīng)該是 ["&name=xiaoha&", "&", "name", "&"]
PS:match的使用:stringObject.match(regexp),如果沒有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個數(shù)組,其中存放了與它找到的匹配文本有關(guān)的信息。該數(shù)組的第 0 個元素存放的是匹配文本,而其余的元素存放的是與正則表達(dá)式的子表達(dá)式匹配的文本。上面例子中正則表達(dá)式的子表達(dá)式為:(^|&)、([^&]*)、(&|$),所以匹配結(jié)果是含有四個元素的數(shù)組。