var all = "draggable resizable abc table shadow";
var some = all.replace(/(?:^|\s)(resizable|draggable|table)(?=\s|$)/g, '');
console.log(some);
// " abc shadow"
console.log(some.replace(/^\s+|\s+$/g,''));
// "abc shadow"
console.log(some.split(/\s+/));
// ["", "abc", "shadow"]
Tenga en cuenta que no es necesario el segundo replace
(que no es necesario quitarse espacio inicial y final) si lo que quieres es una cadena que es apropiado para el ajuste del className
a.
Pero entonces, si usted está tratando de eliminar sólo un conjunto de clases conocidas de un elemento, mucho mejor simplemente:
$(...).removeClass("draggable resizable table");
Alternativa (sin necesidad de una expresión regular):
var ignore = {resizable:1, draggable:1, table:1};
var all = "draggable resizable abc table shadow".split(' ');
for (var subset=[],i=all.length;i--;) if (!ignore[all[i]]) subset.push(all[i]);
console.log(subset);
// ["shadow","abc"]
console.log(subset.join(' '));
// "shadow abc"
Así que desea que los nombres de las clases reales, no los elementos HTML? –
Consejo: Obtendrá mejores respuestas si explica lo que quiere hacer en lugar de (o además de) preguntar sobre una forma en que cree que podría lograrlo. ¿Por qué quieres una lista de clases menos las demás? (¿Qué vas a hacer con ellos?) – Phrogz