jQuery - 正则表达式选择和removeClass()?

标签 jquery regex

我收到了几个自动生成的 HTML 文档,长达数千行,我需要清理源代码。大多数情况下需要删除“table-col-##”等类名。这是一个两步问题:

  1. 选择具有 table-col-## 的任何及所有类,其中 ## 是 0-999 之间的整数
  2. 从元素中删除匹配的类,而不删除任何其他类

所以它归结为:如果可能的话,我需要一种方法在 $() 选择器中使用正则表达式,然后在 every() 中获取选定的类 - 或者将正则表达式应用于 $.removeClass()。谁能指出我正确的方向?

更新:是否有任何类型的 $.removeClass([selected]) 功能?这似乎是解决第二部分的最简单方法。

最佳答案

如果只有数字可以接受,但也可以有其他字符,我会从这样的东西开始(未经测试,但在评论的帮助下进行编辑):

$("[class^='table-col-']").removeClass( function() { /* Matches even table-col-row */
     var toReturn = '',
         classes = this.className.split(' ');
     for(var i = 0; i < classes.length; i++ ) {
         if( /table-col-\d{1,3}/.test( classes[i] ) ) { /* Filters */
             toReturn += classes[i] +' ';
         }
     }
     return toReturn ; /* Returns all classes to be removed */
});

关于jQuery - 正则表达式选择和removeClass()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618005/

相关文章:

javascript - 根据先前保存在 localStorage OL3 中的坐标创建要素

javascript - 主干JS : How to call function outside view from view's events hash?

javascript - 特定字符串/路径的正则表达式

javascript - 非贪婪捕获括号

jquery - ASP.NET MVC3 Jquery/Ajax 问题

Jquery 和 Django 多复选框

regex - Nutch 正则表达式没有按照我想要的方式爬行

regex - 如何匹配正则表达式中至少包含一个字母和一个 * 的字符串

regex - 在 Notepad++ 中查找不以“开头的行

javascript - 为什么 Uncaught TypeError : $(. ..).fullCalendar 不是一个函数?