課程
/前端開發(fā)
/JavaScript
/瀑布流布局
getClassName這個函數(shù) 如果是一個div上有兩個className怎么解決?請大牛給予幫助,謝謝!
2014-07-07
源自:瀑布流布局 2-7
正在回答
可以先用 className.split(' ') 將字符串分割成div所包含所有類構(gòu)成的數(shù)組,然后遍歷數(shù)組是否等于查找類名就行
然而正則匹配需要判斷:匹配類在字符串首、尾和中間還有其它類名包含或者用短線組合的類名,等等多種情況
比如 匹配'ades', 有'ades ??ades w?ades-wer ju-ades ?dh ades'等等,可以看出若是RegExp=/\bades\b/這種就不能匹配在字符串首尾的情況,和誤匹配到ades-wer中的ades,所以總體最終的正則匹配表達(dá)式會復(fù)雜許多,
這里給一個我想好久整出來的匹配表達(dá)式,理論上最優(yōu)的是 /(?<=\s|^)ades(?=\s|$)/ig 不過這里js似乎不支持逆序環(huán)視匹配“ (?<= ”和“ (?<! ”,所以不行,瀏覽器報錯,
退而求其次, 用這個/(?:\s|^)ades(?=\s|$)/ig?,這個就是可能會匹配到類名前后的空白字符,用非獲取匹配 替代?逆序環(huán)視,總算匹配出想要的結(jié)果了
附上百度百科“正則表達(dá)式”詞條:http://baike.baidu.com/view/94238.htm
可以通過正則表達(dá)式判斷是否包含有判斷的類哦!
用正則表達(dá)式匹配
舉報
瀑布流布局是網(wǎng)站比較流行的一種布局方式,教你實現(xiàn)三大方式
11 回答
8 回答
1 回答
15 回答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-06-22
可以先用 className.split(' ') 將字符串分割成div所包含所有類構(gòu)成的數(shù)組,然后遍歷數(shù)組是否等于查找類名就行
然而正則匹配需要判斷:匹配類在字符串首、尾和中間還有其它類名包含或者用短線組合的類名,等等多種情況
比如 匹配'ades', 有'ades ??ades w?ades-wer ju-ades ?dh ades'等等,可以看出若是RegExp=/\bades\b/這種就不能匹配在字符串首尾的情況,和誤匹配到ades-wer中的ades,所以總體最終的正則匹配表達(dá)式會復(fù)雜許多,
這里給一個我想好久整出來的匹配表達(dá)式,理論上最優(yōu)的是 /(?<=\s|^)ades(?=\s|$)/ig 不過這里js似乎不支持逆序環(huán)視匹配“ (?<= ”和“ (?<! ”,所以不行,瀏覽器報錯,
退而求其次, 用這個/(?:\s|^)ades(?=\s|$)/ig?,這個就是可能會匹配到類名前后的空白字符,用非獲取匹配 替代?逆序環(huán)視,總算匹配出想要的結(jié)果了
附上百度百科“正則表達(dá)式”詞條:http://baike.baidu.com/view/94238.htm
2014-07-08
可以通過正則表達(dá)式判斷是否包含有判斷的類哦!
2014-07-07
用正則表達(dá)式匹配