getClassName这个函数 如果是一个div上有两个className怎么解决?请大牛给予帮助,谢谢!
3 回答
可以先用 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
举报
0/150
提交
取消