Jquery javascript removeClass通配符,不太具体的模式
在元素中,我有:Jquery javascript removeClass通配符,不太具体的模式,jquery,regex,wildcard,Jquery,Regex,Wildcard,在元素中,我有: <span class="fa fa-address-book fa-user fa-4x fa-5x fa-lg"></span> 我有很多问题。我做错了什么 我的朋友: 您可以尝试使用这个正则表达式,它会删除所有在fa-或fa cc后面超过2个字符的子字符串 fa(?:-(?:cc|\w{3,}))+ 说明: fa-按字面意思查找fa (?:-\w{3,})+-在非捕获组中查找-后跟三个或多个单词字符,并将其全部查找一次或多次,以覆盖大小写f
<span class="fa fa-address-book fa-user fa-4x fa-5x fa-lg"></span>
我有很多问题。我做错了什么
我的朋友:
您可以尝试使用这个正则表达式,它会删除所有在
fa-
或fa cc
后面超过2个字符的子字符串
fa(?:-(?:cc|\w{3,}))+
说明:
-按字面意思查找fa
fa
-在非捕获组中查找(?:-\w{3,})+
后跟三个或多个单词字符,并将其全部查找一次或多次,以覆盖大小写-
大小写fa通讯簿
让我知道这是否适合您。当您知道要删除的类时,为什么需要wild?请直接使用它为什么不直接使用“removeClass('fa-address-book fa user')?因为(“fa-address-book fa user”)在每个会话中都是随机动态的,请帮助我。删除所有类,然后添加所需的类,如
$(“#demo”)。attr('class','').addClass(“fa-4x fa-5x fa-lg”);
@RenatoRamosPuma很高兴现在一切正常快乐编码Pushpesh Kumar Rajwanshi谢谢,这对我帮助很大,但有一个字体很棒的图标(两个字母的“fa-cc”图标)。我需要删除元素的所有类,除了[fa,fa-lg,fa-2x,fa-3x,fa-4x,fa-5x]@RenatoRamosPuma:好的,如果你需要特别处理fa-cc
案例,或者如果你有更多类似的案例,我们可以将它们单独包括在内,这样它们也会被删除。最好是在fa-
之后找到一个两个字母的模式,这样解决方案仍然是通用的,但是如果我们没有找到任何模式,那么它将被删除必须特别包括它们,至少对您当前的案例有效。@RenatoRamosPuma:我已经用新的正则表达式更新了我的答案,并为regex101和JSFIDLE提供了新的演示链接。请看一看,如果您还需要进一步的帮助,请告诉我。如果我找到了最终的解决方案,非常感谢您。
$(".button").click(function(e) {
var regexp_order = /(^|\s)fa-\S+|(?=fa-4x)|(?=fa-5x)|(?=fa-lg)|(?=fa)/;
var regexp = new RegExp(regexp_order, "g");
$("#demo").removeClass (function (index, className) {
return (className.match (regexp) || []).join(' ');
});
var temporal = $("#demo").attr("class");
$("#result").append(temporal);
});
fa(?:-(?:cc|\w{3,}))+