He generalizado esto en un complemento de Jquery que toma una expresión regular como argumento.
Café:
$.fn.removeClassRegex = (regex) ->
$(@).removeClass (index, classes) ->
classes.split(/\s+/).filter (c) ->
regex.test c
.join ' '
Javascript:
$.fn.removeClassRegex = function(regex) {
return $(this).removeClass(function(index, classes) {
return classes.split(/\s+/).filter(function(c) {
return regex.test(c);
}).join(' ');
});
};
Entonces, para este caso, el uso sería (tanto Coffee como Javascript):
$('#hello').removeClassRegex(/^color-/)
Tenga en cuenta que estoy usando la Array.filter
función que no existe en IE <9. En su lugar, puede usar la función de filtro de Underscore o Google para un polyfill como este WTFPL .