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"]
Należy pamiętać, że nie trzeba drugi replace
(nie trzeba zdejmować początkowe i końcowe spacje), jeżeli chcesz to ciąg znaków, który jest odpowiedni do ustawiania className
do.
Ale wtedy, jeśli starasz się po prostu usunąć zestaw znanych klas od elementu, o wiele lepiej po prostu:
$(...).removeClass("draggable resizable table");
Alternatywny (bez konieczności regex):
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"
więc chcesz rzeczywiste nazwy klas, a nie elementy HTML? –
Wskazówka: Otrzymasz lepsze odpowiedzi, jeśli wyjaśnisz, co chcesz zrobić, zamiast (lub oprócz) zapytać o jeden ze sposobów, w jakie możesz go osiągnąć. Dlaczego chcesz listę zajęć minus pozostałe? (Co zamierzasz z nimi zrobić.) – Phrogz