首页 > 代码库 > addClass()、removeClass(),正则表达式实现
addClass()、removeClass(),正则表达式实现
核心部分:
var reg = new RegExp("(^|[^-])\\b" + target_class + "\\b([^-]|$)");
原正则表达式若目标类名前后带有中划线 “-” 会出现匹配错误,如目标类名为 "active",干扰类名"-active"或"active-"也会匹配上。
var reg = new RegExp("\\s?\\b" + target_class + "\\b", "g");
完整代码:
function addClass(el, clas){ var reg = new RegExp("(^|[^-])\\b" + clas + "\\b([^-]|$)"), trim = /^\s+|\s+$/g, classStr = el.className; classStr = classStr.replace(trim, ""); // 先删除类名前后的空格 el.className = reg.test(classStr) ? classStr : classStr + " " + clas;}function removeClass(el, clas){ var reg = new RegExp("(^|[^-])\\b" + clas + "\\b([^-]|$)", "g"), trim = /^\s+|\s+$/g, classStr = el.className; classStr = classStr.replace(reg, ""); el.className = classStr.replace(trim, ""); //最后删除类名前后空格}
完整代码自己测试没有出现问题,有兴趣的朋友可以自行检测!
addClass()、removeClass(),正则表达式实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。