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